Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
2 / 2 / 0
Регистрация: 24.02.2019
Сообщений: 318

Получить значение из строки XML

22.03.2020, 15:52. Показов 5765. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, необходимо получить значения lat и lon из XML файла, может знает кто как это сделать?
XML
1
<place place_id="49753476" osm_type="node" osm_id="3895503646" place_rank="30" boundingbox="47.2147955,47.2148955,38.9303662,38.9304662" geojson="{"type":"Point","coordinates":[38.9304162,47.2148455]}" lat="47.2148455" lon="38.9304162" display_name="80, Петровская улица, Центр, Таганрог, городской округ Таганрог, Ростовская область, Южный федеральный округ, 37900, Россия" class="amenity" type="******cy" importance="0.111" icon="https://nominatim.openstreetmap.org/images/mapicons/health_******cy_dispensing.p.20.png"/>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.03.2020, 15:52
Ответы с готовыми решениями:

XML. Получить значение тега
Здравствуйте, допустим имеется такой документ: Текст 1 Текст 3 Текст 2 Мне надо получить значение тега без учета...

Получить значение элемента из xml
Есть xml-файл: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;main&gt; &lt;value&gt;123&lt;/value&gt; &lt;value&gt; &lt;/value&gt; &lt;value&gt; &lt;/value&gt; ...

Получить значение из тега XML
Есть XML файл такой структуры &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;rests&gt; &lt;product id=&quot;6041389&quot; cat=&quot;Аксессуары к сумкам&quot;...

25
2 / 2 / 0
Регистрация: 24.02.2019
Сообщений: 318
22.03.2020, 20:17  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от OwenGlendower Посмотреть сообщение
foreach (XmlElement el in xmlDoc.DocumentElement.SelectNodes("plac e"))
{
    double latitude = double.Parse(el.GetAttribute("lat"), CultureInfo.InvariantCulture);
    double longitude = double.Parse(el.GetAttribute("lon"), CultureInfo.InvariantCulture);
    ...
}
А каким образом можно получить не числа, а текст?
Допустим вместо lat и lon - display_name
XML
1
<place place_id="49753476" osm_type="node" osm_id="3895503646" place_rank="30" boundingbox="47.2147955,47.2148955,38.9303662,38.9304662" geojson="{"type":"Point","coordinates":[38.9304162,47.2148455]}" lat="47.2148455" lon="38.9304162" display_name="80, Петровская улица, Центр, Таганрог, городской округ Таганрог, Ростовская область, Южный федеральный округ, 37900, Россия" class="amenity" type="******cy" importance="0.111" icon="https://nominatim.openstreetmap.org/images/mapicons/health_******cy_dispensing.p.20.png"/>
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
22.03.2020, 20:35
Цитата Сообщение от Gabaz Посмотреть сообщение
А каким образом можно получить не числа, а текст?
Допустим вместо lat и lon - display_name
Можно если применить десериализацию.
0
2 / 2 / 0
Регистрация: 24.02.2019
Сообщений: 318
22.03.2020, 20:38  [ТС]
Разобрался)
C#
1
2
string DisplayName;
DisplayName=xmlDoc.DocumentElement.GetAttribute("display_name");
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
22.03.2020, 20:39
Цитата Сообщение от Gabaz Посмотреть сообщение
а текст?
Не внимательно прочитал.
GetAttribute("lat") всегда возвращает текст.
Вы же сами его переводите в числа методом double.Parse
0
2 / 2 / 0
Регистрация: 24.02.2019
Сообщений: 318
23.03.2020, 05:57  [ТС]
Так мне из числового формата нужны были только lat и lon, остальное в текстовом формате
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
23.03.2020, 09:17
Цитата Сообщение от Gabaz Посмотреть сообщение
Так мне из числового формата нужны были только lat и lon, остальное в текстовом формате
Они все получаются в текстовом.
Там где надо конвертируйте в числовой или иной тип.

Я бы посоветовал вам сделать тип с соответствующими свойствами и в нём объявить метод парсинга их из XML
Что-то подобное
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Place
{
     public double Lat {get; set;}
     public double Lon {get; set;}
     public string DisplayName {get; set;}
 
    public static Place ParseXML(XElement element)
        => new Place()
        {
             Lat = double.Parse(element.Attribute("lat").Value),
             Lon = double.Parse(element.Attribute("lon").Value),
             DisplayName = element.Attribute("display_name").Value,
        };
     
}
И потом можете его использовать таким образом
C#
1
2
3
4
            List<Place> placees = document.Root
                .Elements("place")
                .Select(Place.ParseXML)
                .ToList();
Добавлено через 4 минуты
Или даже так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Place
{
     public double Lat {get; set;}
     public double Lon {get; set;}
     public string DisplayName {get; set;}
 
     public static Place ParseXML(XElement element)
        => new Place()
        {
             Lat = double.Parse(element.Attribute("lat").Value),
             Lon = double.Parse(element.Attribute("lon").Value),
             DisplayName = element.Attribute("display_name").Value,
        };
 
     public static List<Place> ListFromXML(XElement element)
        => element;
                .Elements("place")
                .Select(Place.ParseXML)
                .ToList();
 
}
C#
1
List<Place> placees =Place.ListFromXML(document.Root);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.03.2020, 09:17

XML reader - получить значение тега
Получаю значение из XML следующим образом: if (reader.Name == &quot;Book&quot;) { var item =...

Получить значение documentation из xml attribute
Необходимо получить описание какого либо атрибута, установить значение получается, а вот как получить не знаю. ...

Как получить значение атрибута XML
&lt;items&gt; &lt;item name = &quot;A&quot;&gt; &lt;element name = &quot;el_name&quot; address = &quot;...&quot;/&gt; &lt;element name = &quot;el_name&quot; address = &quot;...&quot;/&gt; &lt;element...

XML парсер: получить конкретное значение
Сразу к делу: Есть документ: &lt;response&gt; &lt;settings&gt; &lt;app_url&gt;http://vkontakte.ru/horrorg&lt;/app_url&gt; ...

Получить значение конкретного узла xml
Здравствуйте. Как с помощью C# получить значение конкретного узла XML документа и присвоить его переменной. &lt;?xml...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru