Поделиться через


Как извлечь отдельный дочерний элемент (LINQ to XML)

Обновлен: November 2007

В этом разделе объясняется, как обеспечить получение отдельных дочерних элементов, когда известно имя этого дочернего элемента. Если известно имя дочернего элемента, а также то, что есть только один элемент с таким именем, удобнее получить один элемент, а не целую коллекцию.

Метод Element возвращает первый дочерний элемент XElement с указанным именем XName.

Если требуется получить отдельный дочерний элемент в Visual Basic, обычно используется XML-свойство, а затем происходит получение первого элемента при помощи обозначения индексатора массива.

Пример

В следующем примере иллюстрируется использование метода Element. В этом примере берется XML-дерево po и осуществляется поиск первого элемента с именем Comment.

В примере по Visual Basic демонстрируется использование обозначения индексатора массива для получения отдельного элемента.

В этом примере используется следующий XML-документ: Образец XML-файла: типичный заказ на покупку (LINQ to XML).

XElement po = XElement.Load("PurchaseOrder.xml");
XElement e = po.Element("DeliveryNotes");
Console.WriteLine(e);
Dim po As XElement = XElement.Load("PurchaseOrder.xml")
Dim e As XElement = po.<DeliveryNotes>(0)
Console.WriteLine(e)

Выполнение этого примера приводит к получению следующего результата:

<DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>

В следующем примере демонстрируется тот же код XML-документа, который находится в пространстве имен. Дополнительные сведения см. в разделе Работа с пространствами имен XML.

В этом примере используется следующий XML-документ: Образец XML-файла: Типичный заказ на покупку в пространстве имен.

XElement po = XElement.Load("PurchaseOrderInNamespace.xml");
XNamespace aw = "https://www.adventure-works.com";
XElement e = po.Element(aw + "DeliveryNotes");
Console.WriteLine(e);
Imports <xmlns:aw="https://www.adventure-works.com">

Module Module1
    Sub Main()
        Dim po As XElement = XElement.Load("PurchaseOrderInNamespace.xml")
        Dim e As XElement = po.<aw:DeliveryNotes>(0)
        Console.WriteLine(e)
    End Sub
End Module

Выполнение этого примера приводит к получению следующего результата:

<aw:DeliveryNotes xmlns:aw="https://www.adventure-works.com">Please leave packages in shed by driveway.</aw:DeliveryNotes>

См. также

Основные понятия

Оси LINQ to XML