Нужно вывести дочерние узлы определенного узла. Вот xml документ:
<?xml version="1.0" encoding="UTF-8"?>
<head>
<Klassi>
<klass>
Класс 1
<klass Attr="Класс 15">Класс 15</klass>
<klass Attr="Класс 15">Класс 15</klass>
</klass>
<klass>Класс 2</klass>
<klass>Класс 3</klass>
<klass>Класс 4</klass>
<klass>Класс 5</klass>
<klass>
Класс 15
<gruppa>А</gruppa>
<gruppa>Б</gruppa>
<gruppa>В</gruppa>
</klass>
<klass>
Класс 9
<gruppa>А</gruppa>
</klass>
<klass Attr="Класс 777">
Класс 777
<gruppa>А</gruppa>
<gruppa>Б</gruppa>
<gruppa>В</gruppa>
</klass>
</Klassi>
</head>
Мне нужно вывести дочерние узлы, ну например, элемента 'Класс 15'. Т.е. в данном случае я хочу получить список вот таких значений: А Б В. Так вот как это сделать?
Ну можно пройтись по дереву и выбрать те элементы klass
, которые содержат текст "Класс 15"
. Давайте воспользуется Linq2Xml:
var doc = XDocument.Load("file.xml"); // Загружаем документ
var klass15 = doc.Element("head") // Берем элемент head
.Element("Klassi") // В нем элемент Klassi
.Elements("klass") // В нем все элементы klass
// Из них выбираем те, которые содержат текст и этот текст содержит строку "Класс 15"
.Where(e => e.Nodes()
.OfType<XText>()
.Where(t => t.Value.Contains("Класс 15")).Any());
foreach (var e in klass15.Elements("gruppa")) // Пройдемся по его элементам gruppa
Console.WriteLine(e.Value); // И выведем их содержимое
Вывод:
А
Б
В
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть 3 цикла от 000 до 999, в коде прописано что если число, к примеру доходит до 193, то он дальше не идет(194,
Вот есть у меня массив байтов:
Как получить необходимые значения без миллиона вложенных for (key in data) {}