Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 12.07.2021
Сообщений: 58

Найти элемент в xml по тегу (SelectSingleNode)

25.04.2022, 20:26. Показов 1310. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, пытаюсь достать некоторые элементы из xml файла. по номеру получается, а по тегу выдает что не найдено
вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
            string path = @"F:\lab.xml";
            XmlDocument xml = new XmlDocument();
            xml.Load(path);
 
            XmlNodeList nodeList = xml.GetElementsByTagName("APFound");
 
            List<DataModel> listAddress = new List<DataModel>();
            foreach (XmlNode e in nodeList)
            {
                DataModel temp = new DataModel();
                temp.name = e.ChildNodes.Item(0).InnerText;    // это по номеру, тут все хорошо
                temp.speed = e.SelectSingleNode("descendant::Session[APFound/LS]").InnerText; //попытка1
                temp.speed = e.SelectSingleNode("descendant::APFound[LS]").InnerText;    //попытка2, все равно не работает
                temp.mac = e.ChildNodes.Item(2).InnerText;
 
                for (int i = 1; i < e.ChildNodes.Count; i++)
                {
                    temp.type.Add(e.InnerText);
                }
 
                listAddress.Add(temp);
            }
Подскажите пожалуйста, как будет правильно написать
вот сам файл:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?xml version="1.0" encoding="UTF-8"?>
 
-<Session>
<DateTime>701266608</DateTime>
<Duration>40</Duration>
<Notes/>
+<DeviceUsed>
+<ConfigUsed>
+<Profile>
-<APFound>
   <AT_ID>104ae028</AT_ID>
   <M>D4:CA:6D:09:3F:56</M>
   <B>D4:CA:6D:09:3F:56</B>
   <S>6B352D342D3132</S>
   <CH>24120</CH>
   <MD>0</MD>
   <T>14</T>
   <LH>13</LH>
   <FH>701266568</FH>
   <LS>-64</LS>           //вот это надо вытянуть 
   <LSN>31</LSN>
   <SR>1 - 144 Mbps</SR>
   <SEC>64</SEC>
   -<CF>
      <W2>4</W2>
   </CF>
   -<CF>
      <W2>4</W2>
   </CF>
   -<CF>
      <W2>2</W2>
   </CF>
   <F4>false</F4>
   <ABG>false</ABG>
   <AG>false</AG>
   <X>Макс. скорость приёма: 144 Мбит/с (20 MHz, потоки 2, 1/2 GI)</X>
   <H>false</H>
</APFound>
 
-<APFound>
   <AT_ID>104ae1a8</AT_ID>
   <M>88:66:39:40:58:E0</M>
   <B>88:66:39:40:58:E0</B>
   <S>4855415745493537</S
   <CH>24120</CH>
   <MD>0</MD>
   <T>14</T>
   <ST>0</ST>
   <LH>13</LH>
   <FH>701266568</FH>
   <LS>-84</LS>
   <LSN>11</LSN>
   <SR>1 - 144 Mbps</SR>
   <N>1</N>
   <SEC>64</SEC>
   -<CF>
      <W2>4</W2>
   </CF>
   -<CF>
      <W2>4</W2>
   </CF>
   <CC>?a </CC>
   <F4>false</F4>
   <ABG>false</ABG>
   <AG>true</AG>
   <X>Макс. скорость приёма: 144 Мбит/с (20 MHz, потоки 2, 1/2 GI)</X>
   <H>false</H>
   </APFound>
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.04.2022, 20:26
Ответы с готовыми решениями:

SelectSingleNode в xml возвращает Nothing
Доброго времени! Простой XML-файл (называется sandbox.sbc): &lt;?xml version=&quot;1.0&quot;?&gt; &lt;MyObjectBuilder_Checkpoint...

Xml SelectSingleNode возвращает null
Здравствуйте, почему SelectSingleNode возвращает null и как это исправить? XmlDocument doc = new XmlDocument (); doc.LoadXml (data); ...

Сортировка xml-объекта по тегу в ms sql server
Как сделать сортировку данных таблицы MS SQL в колонке типа XML, чтобы все теги шли в алфавитном порядке (по названию тега)?

3
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18307 / 14231 / 5368
Регистрация: 17.03.2014
Сообщений: 28,903
Записей в блоге: 1
25.04.2022, 20:47
nat_s, так по идее
C#
1
2
3
4
var listOfLs = xml.SelectNodes("//APFound/LS")
    .Cast<XmlElement>()
    .Select(el => el.InnerText)
    .ToList();
0
0 / 0 / 0
Регистрация: 12.07.2021
Сообщений: 58
25.04.2022, 22:25  [ТС]
OwenGlendower, а как можно это вклинить в мой код? дело в том что у меня есть класс с тремя полями string и я пробую в цикле по кол-ву элементов в XML создавать экземпляр этого класса. в три этих поля записывать нужные значения из xml. потом экземпляры в List. и в итоге получается list экземпляров со string полями из переданных значений. вроде бы ваш вариант может возвратить list с выборкой только по одному полю. или это я не соображаю
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18307 / 14231 / 5368
Регистрация: 17.03.2014
Сообщений: 28,903
Записей в блоге: 1
26.04.2022, 01:00
Лучший ответ Сообщение было отмечено nat_s как решение

Решение

nat_s, так попробуйте
C#
1
2
3
temp.name = e.SelectSingleNode("AT_ID").InnerText;
temp.speed = e.SelectSingleNode("LS").InnerText;
temp.mac = e.SelectSingleNode("B").InnerText;
Добавлено через 37 секунд
Советую всегда по имени выборку делать. Для лучшей читабельности и надежности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.04.2022, 01:00
Помогаю со студенческими работами здесь

Как получить элемент по тегу только с использованием стандартных библиотек Python 2.7?
Как получить элемент по тегу только с использованием стандартных библиотек Python 2.7? &lt;soapenv:Envelope...

Вывод похожих записей по тегу, а именно согласно количеству привязанных записей к тегу
Всем привет! Этот код выводит похожие записи по тегу: &lt;?php $tags = wp_get_post_tags($post-&gt;ID); if ($tags) { $tag_ids = array();...

Найти XML-элемент с определенным атрибутом
Нужно найти елемент с определенным атрибутом. Например Task с атрибутом id = 16 есть такая запись, как мне доделать ее что бы найти...

Как найти и удалить записанный элемент xml?
public void AddPlayer(CSteamID SteamID, string Name, string DisplayName, uint Cost, string CustomerName, string CustomerDisplayName, string...

Найти элемент по определенному значению в узле XML
Здравствуйте, уважаемые форумчане! :) У меня есть xml файл, код которого такой: &lt;?xml version=&quot;1.0&quot;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru