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


LINQ to XML для пользователей XPath

В данном ряде разделов показаны несколько выражений XPath и их эквиваленты LINQ to XML. 

Во всех примерах используются функции XPath, поддерживаемые технологией LINQ to XML, доступ к которым предоставляется с помощью методов расширения в System.Xml.XPath.Extensions. В этих примерах происходит выполнение и выражения XPath, и выражения LINQ to XML. Затем в каждом примере сравниваются результаты обоих запросов для проверки того, что выражение XPath является функционально эквивалентным запросу LINQ to XML. Так как оба типа запросов возвращают узлы из одного XML-дерева, сравнение результатов запросов выполняется с помощью ссылочного идентификатора.

В этом разделе

Раздел

Описание

Сравнение XPath и LINQ to XML

Содержит общие сведения о подобиях и различиях между XPath и LINQ to XML.

Как найти дочерний элемент (XPath-LINQ to XML)

Сравнивает ось дочернего элемента XPath с предусмотренным в LINQ to XML методом Element

Связанным выражением XPath является "DeliveryNotes".

Как найти список дочерних элементов (XPath-LINQ to XML)

Сравнивает ось дочернего элемента XPath с предусмотренной в LINQ to XML осью Elements.

Связанное выражение XPath:"./*"

Как найти корневой элемент (XPath-LINQ to XML)

Сравнивает способы получения корневого элемента при помощи XPath и LINQ to XML.

Связанное выражение XPath:"/PurchaseOrders"

Как найти элементы-потомки (XPath-LINQ to XML)

Сравнивает способы получения элементов-потомков с определенным именем при помощи XPath и LINQ to XML.

Связанное выражение XPath:"//Name"

Как выполнить фильтрацию по атрибуту (XPath-LINQ to XML)

Сравнивает способы получения элементов-потомков с указанным именем и атрибутом с заданным значением с помощью XPath и LINQ to XML.

Связанное выражение XPath:".//Address[@Type='Shipping']"

Как найти связанные элементы (XPath-LINQ to XML)

Сравнивает способы получения элемента по атрибуту, на который ссылается значение другого элемента, с помощью XPath и LINQ to XML.

Связанное выражение XPath:".//Customer[@CustomerID=/Root/Orders/Order[12]/CustomerID]"

Как найти элементы в пространстве имен (XPath-LINQ to XML)

Сравнивает использование класса XPath XmlNamespaceManager со свойством LINQ to XML Namespace класса XName для работы с пространствами имен XML.

Связанное выражение XPath:"./aw:*"

Как найти предшествующие одноуровневые элементы (XPath-LINQ to XML)

Сравнивает ось preceding-sibling XPath с дочерней по отношению к LINQ to XML осью XNode.ElementsBeforeSelf

Связанное выражение XPath:"preceding-sibling::*"

Как найти потомков дочернего элемента (XPath-LINQ to XML)

Сравнивает способы получения элементов-потомков дочернего элемента с определенным именем при помощи XPath и LINQ to XML.

Связанное выражение XPath:"./Paragraph//Text/text()"

Как найти объединение двух путей доступа (XPath-LINQ to XML)

Сравнивает использование оператора объединения | в XPath со стандартным оператором запросов Concat<TSource> в LINQ to XML.

Связанное выражение XPath:"//Category|//Price"

Как найти одноуровневые узлы (XPath-LINQ to XML)

Сравнивает способы нахождения с помощью XPath и LINQ to XML всех одноуровневых объектов узла с указанным именем.

Связанное выражение XPath:"../Book"

Как найти атрибут родителя (XPath-LINQ to XML)

Сравнивает способы перехода к родительскому элементу и поиска связанного атрибута с помощью XPath и LINQ to XML.

Связанное выражение XPath:"../@id"

Как найти атрибуты одноуровневых узлов с определенным именем (XPath-LINQ to XML)

Сравнивает способы поиска определенных атрибутов одноуровневых объектов контекстного узла при помощи XPath и LINQ to XML.

Связанное выражение XPath:"../Book/@id"

Как найти элементы с определенным атрибутом (XPath-LINQ to XML)

Сравнивает способы получения всех элементов, содержащих определенный атрибут, с помощью XPath и LINQ to XML.

Связанное выражение XPath:"./*[@Select]"

Как найти дочерние элементы по их позиции (XPath-LINQ to XML)

Сравнивает способы поиска элемента на основе его относительного расположения с помощью XPath и LINQ to XML.

Связанное выражение XPath:"Test[position() >= 2 and position() <= 4]"

Как найти ближайший предшествующий одноуровневый элемент (XPath-LINQ to XML)

Сравнивает способы нахождения ближайшего предшествующего одноуровневого элемента узла с помощью XPath и LINQ to XML.

Связанное выражение XPath:"preceding-sibling::*[1]"

См. также

Ссылки

System.Xml.XPath

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

Запрос к XML-деревьям

Обработка XML-данных с использованием модели данных XPath