LINQ to XML para usuarios de XPath
En este conjunto de temas se muestran varias expresiones XPath y sus equivalentes de LINQ to XML.
Todos los ejemplos utilizan la funcionalidad XPath en LINQ to XML que está disponible con los métodos de extensión de System.Xml.XPath.Extensions.Los ejemplos ejecutan la expresión XPath y la expresión LINQ to XML.A continuación, cada ejemplo compara los resultados de ambas consultas, validando que la expresión XPath sea funcionalmente equivalente a la consulta de LINQ to XML.Como ambos tipos de consultas devuelven nodos del mismo árbol XML, la comparación del resultado de las consultas se realiza mediante identidad referencial.
En esta sección
Tema |
Descripción |
---|---|
Proporciona información general de las similitudes y diferencias entre XPath y LINQ to XML. |
|
Compara el eje del elemento secundario XPath con el método LINQ to XMLElement. La expresión XPath asociada es:"DeliveryNotes". |
|
Cómo buscar una lista de elementos secundarios (XPath-LINQ to XML) |
Compara el eje de los elementos secundarios XPath con el eje LINQ to XMLElements. La expresión XPath asociada es:"./*" |
Compara cómo obtener el elemento raíz con XPath y LINQ to XML. La expresión XPath asociada es:"/PurchaseOrders" |
|
Compara cómo obtener los elementos descendientes con un nombre específico con XPath y LINQ to XML. La expresión XPath asociada es:"//Name" |
|
Compara cómo obtener los elementos descendientes con un nombre especificado y con un atributo con un valor especificado con XPath y LINQ to XML. La expresión XPath asociada es:".//Address[@Type='Shipping']" |
|
Compara cómo obtener un elemento seleccionando en un atributo al que hace referencia el valor de otro elemento con XPath y LINQ to XML. La expresión XPath asociada es:".//Customer[@CustomerID=/Root/Orders/Order[12]/CustomerID]" |
|
Cómo buscar elementos en un espacio de nombres (XPath-LINQ to XML) |
Compara el uso de la clase XPath XmlNamespaceManager con la propiedad LINQ to XMLNamespace de la clase XName para trabajar con espacios de nombres XML. La expresión XPath asociada es:"./aw:*" |
Cómo encontrar elementos relacionados anteriores (XPath-LINQ to XML) |
Compara el eje preceding-sibling de XPath con el eje secundario de LINQ to XMLXNode.ElementsBeforeSelf. La expresión XPath asociada es:"preceding-sibling::*" |
Cómo buscar descendientes de un elemento secundario (XPath-LINQ to XML) |
Compara cómo obtener los elementos descendientes de un elemento secundario con un nombre específico con XPath y LINQ to XML. La expresión XPath asociada es:"./Paragraph//Text/text()" |
Cómo buscar una unión de dos rutas de ubicación (XPath-LINQ to XML) |
Compara el uso del operador de unión, |, en Xpath con el operador de consulta estándar Concat<TSource> en LINQ to XML. La expresión XPath asociada es:"//Category|//Price" |
Compara cómo buscar todos los elementos del mismo nivel de un nodo que tiene un nombre específico con XPath y LINQ to XML. La expresión XPath asociada es:"../Book" |
|
Cómo buscar un atributo del elemento primario (XPath-LINQ to XML) |
Compara cómo desplazarse al elemento primario y buscar un atributo asociado usando XPath y LINQ to XML. La expresión XPath asociada es:"../@id" |
Cómo buscar atributos de elementos secundarios con un nombre específico (XPath-LINQ to XML) |
Compara cómo buscar atributos específicos de los elementos del mismo nivel del nodo de contexto con XPath y LINQ to XML. La expresión XPath asociada es:"../Book/@id" |
Cómo buscar elementos que tienen un atributo especifico (XPath-LINQ to XML) |
Compara cómo buscar todos los elementos que contienen un atributo específico usando XPath y LINQ to XML. La expresión XPath asociada es:"./*[@Select]" |
Cómo buscar elementos secundarios en base a la posición (XPath-LINQ to XML) |
Compara cómo buscar un elemento basándose en su posición relativa usando XPath y LINQ to XML. La expresión XPath asociada es:"Test[position() >= 2 and position() <= 4]" |
Cómo buscar el elemento del mismo nivel inmediatamente anterior (XPath-LINQ to XML) |
Compara cómo buscar el elemento del mismo nivel inmediatamente anterior de un nodo usando XPath y LINQ to XML. La expresión XPath asociada es:"preceding-sibling::*[1]" |