Мне нужно было сделать этот шаг дальше, и я не совсем понимал, как это сделать. Спасибо за отправную точку. Вот некоторые дополнительные фрукты, чтобы сэкономить труд.
Учитывая некоторые дополнительные забавы xml:
<TopLevel>
<Inside ident="one">Jibba</Inside>
<Inside ident="two">Jabba</Inside>
<Inside ident="one">AlsoJibba</Inside>
<Inside ident="three">AlsoJabba</Inside>
</TopLevel>
Я добавил предложение where, которое ищет элементы внутри родительского «TopLevel», у которых значение идентификатора атрибута равно «one».
Dim query = From c In loaded.Descendants("TopLevel").Elements("inside")
Where c.Attribute("ident") = "one"
Select c.Value
Затем выполнил небольшую демонстрационную консоль с результатами:
For each inside in query
Console.WriteLine(inside)
Next
Какой вывод:
Jibba
AlsoJibba
Предупреждение о спойлере:
Теперь, если вы скопировали и вставили то, что я только что сделал, и вы используете VB, как я, у вас есть особенно раздражающий нюанс. Код не работает. Обратите внимание на небольшой раздел ".Elements (" inside ") в запросе LINQ. XML чувствителен к регистру. VB крайне не чувствителен к регистру. Пользователи C # могут свободно игнорировать нашу молодость. Просто хотели продемонстрировать, где и что нужно.
Мэтт