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 методом Element. Связанным выражением XPath является "DeliveryNotes". |
|
Сравнивает ось дочернего элемента XPath с предусмотренной в LINQ to XML осью Elements. Связанное выражение XPath:"./*" |
|
Сравнивает способы получения корневого элемента при помощи XPath и LINQ to XML. Связанное выражение XPath:"/PurchaseOrders" |
|
Сравнивает способы получения элементов-потомков с определенным именем при помощи XPath и LINQ to XML. Связанное выражение XPath:"//Name" |
|
Сравнивает способы получения элементов-потомков с указанным именем и атрибутом с заданным значением с помощью XPath и LINQ to XML. Связанное выражение XPath:".//Address[@Type='Shipping']" |
|
Сравнивает способы получения элемента по атрибуту, на который ссылается значение другого элемента, с помощью XPath и LINQ to XML. Связанное выражение XPath:".//Customer[@CustomerID=/Root/Orders/Order[12]/CustomerID]" |
|
Сравнивает использование класса 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:"./Paragraph//Text/text()" |
|
Как найти объединение двух путей доступа (XPath-LINQ to XML) |
Сравнивает использование оператора объединения | в XPath со стандартным оператором запросов Concat<TSource> в LINQ to XML. Связанное выражение XPath:"//Category|//Price" |
Сравнивает способы нахождения с помощью XPath и LINQ to XML всех одноуровневых объектов узла с указанным именем. Связанное выражение XPath:"../Book" |
|
Сравнивает способы перехода к родительскому элементу и поиска связанного атрибута с помощью 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]" |