Поиск элемента XML в C#
У элемента метод Element
возвращает первый прямой дочерний узел с заданным
именем. Соседние узлы с тем же именем этот вызов
не возвращает.
В документе два "item", но
Element("item") возьмёт первый, поэтому
атрибут "id" равен "1". Оператор
! стоит, потому что этот тег точно есть:
using System.Xml.Linq;
XDocument doc = XDocument.Parse("<root><item id=\"1\"/><item id=\"2\"/></root>");
Console.WriteLine(doc.Root!.Element("item")!.Attribute("id")!.Value);
Если узла с таким именем нет, Element возвращает null. Перед Value нужна проверка, а не оператор !. Для имени "absent" узел пуст:
using System.Xml.Linq;
XDocument doc = XDocument.Parse("<root><item>text</item></root>");
XElement? node = doc.Root!.Element("absent");
Console.WriteLine(node is null);
В корне "root" два тега "title"
с текстами "Morning" и "Evening".
Выведите текст первого "title".