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


Практическое руководство. Извлечение одного дочернего элемента (LINQ to XML)

В этой статье объясняется, как получить один дочерний элемент, первый дочерний элемент с указанным именем. В C# это можно сделать с Element помощью метода. В Visual Basic это можно сделать с нотацией индексатора массива.

Пример. Получение первого элемента с указанным именем

В следующем примере извлекается первый DeliveryNotes элемент из XML-документа в примере 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-файл sample XML: типичный заказ на покупку в пространстве имен. Дополнительные сведения о пространствах имен см. в обзоре пространств имен.

XElement po = XElement.Load("PurchaseOrderInNamespace.xml");
XNamespace aw = "http://www.adventure-works.com";
XElement e = po.Element(aw + "DeliveryNotes");
Console.WriteLine(e);
Imports <xmlns:aw="http://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="http://www.adventure-works.com">Please leave packages in shed by driveway.</aw:DeliveryNotes>

См. также