Extensions.XPathSelectElements Método

Definición

Selecciona una colección de elementos mediante una expresión XPath.

Sobrecargas

Nombre Description
XPathSelectElements(XNode, String)

Selecciona una colección de elementos mediante una expresión XPath.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Selecciona una colección de elementos mediante una expresión XPath, resolviendo prefijos de espacio de nombres mediante el especificado IXmlNamespaceResolver.

Comentarios

Aunque no se especifica el orden de las colecciones devueltas en la recomendación XML XPath Language 1.0, este método de extensión devuelve nodos en orden de documento.

Tenga en cuenta que los nodos se devuelven en orden de documento incluso cuando se usa un eje inverso, como preceding-sibling o ancestor-or-self.

XPathSelectElements(XNode, String)

Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs

Selecciona una colección de elementos mediante una expresión XPath.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ XPathSelectElements(System::Xml::Linq::XNode ^ node, System::String ^ expression);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements(this System.Xml.Linq.XNode node, string expression);
static member XPathSelectElements : System.Xml.Linq.XNode * string -> seq<System.Xml.Linq.XElement>
<Extension()>
Public Function XPathSelectElements (node As XNode, expression As String) As IEnumerable(Of XElement)

Parámetros

node
XNode

en XNode el que se va a evaluar la expresión XPath.

expression
String

que String contiene una expresión XPath.

Devoluciones

IEnumerable<T> de XElement que contiene los elementos seleccionados.

Ejemplos

En el ejemplo siguiente se crea un pequeño árbol XML y se usa XPathSelectElements para seleccionar un conjunto de elementos.

                XElement root = new XElement("Root",
    new XElement("Child1", 1),
    new XElement("Child1", 2),
    new XElement("Child1", 3),
    new XElement("Child2", 4),
    new XElement("Child2", 5),
    new XElement("Child2", 6)
);
IEnumerable<XElement> list = root.XPathSelectElements("./Child2");
foreach (XElement el in list)
    Console.WriteLine(el);
                Dim root As XElement = _
    <Root>
        <Child1>1</Child1>
        <Child1>2</Child1>
        <Child1>3</Child1>
        <Child2>4</Child2>
        <Child2>5</Child2>
        <Child2>6</Child2>
    </Root>
Dim list As IEnumerable(Of XElement) = root.XPathSelectElements("./Child2")
For Each el As XElement In list
    Console.WriteLine(el)
Next

Este ejemplo produce el siguiente resultado:

<Child2>4</Child2>
<Child2>5</Child2>
<Child2>6</Child2>

Comentarios

Aunque no se especifica el orden de las colecciones devueltas en la recomendación XML XPath Language 1.0, este método de extensión devuelve nodos en orden de documento.

Tenga en cuenta que los nodos se devuelven en orden de documento incluso cuando se usa un eje inverso, como preceding-sibling o ancestor-or-self.

Se aplica a

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs

Selecciona una colección de elementos mediante una expresión XPath, resolviendo prefijos de espacio de nombres mediante el especificado IXmlNamespaceResolver.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ XPathSelectElements(System::Xml::Linq::XNode ^ node, System::String ^ expression, System::Xml::IXmlNamespaceResolver ^ resolver);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements(this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver? resolver);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements(this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver resolver);
static member XPathSelectElements : System.Xml.Linq.XNode * string * System.Xml.IXmlNamespaceResolver -> seq<System.Xml.Linq.XElement>
<Extension()>
Public Function XPathSelectElements (node As XNode, expression As String, resolver As IXmlNamespaceResolver) As IEnumerable(Of XElement)

Parámetros

node
XNode

en XNode el que se va a evaluar la expresión XPath.

expression
String

que String contiene una expresión XPath.

resolver
IXmlNamespaceResolver

para IXmlNamespaceResolver los prefijos de espacio de nombres en la expresión XPath.

Devoluciones

IEnumerable<T> de XElement que contiene los elementos seleccionados.

Ejemplos

En este ejemplo se crea un árbol XML que contiene un espacio de nombres. Usa para XmlReader leer el documento XML. A continuación, obtiene un XmlNameTable objeto de y XmlReaderun XmlNamespaceManager de .XmlNameTable Usa al XmlNamespaceManager seleccionar la lista de elementos.

                string markup = @"
<aw:Root xmlns:aw='http://www.adventure-works.com'>
    <aw:Child1>child one data 1</aw:Child1>
    <aw:Child1>child one data 2</aw:Child1>
    <aw:Child1>child one data 3</aw:Child1>
    <aw:Child2>child two data 4</aw:Child2>
    <aw:Child2>child two data 5</aw:Child2>
    <aw:Child2>child two data 6</aw:Child2>
</aw:Root>";
XmlReader reader = XmlReader.Create(new StringReader(markup));
XElement root = XElement.Load(reader);
XmlNameTable nameTable = reader.NameTable;
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(nameTable);
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com");
IEnumerable<XElement> elements = root.XPathSelectElements("./aw:Child1", namespaceManager);
foreach (XElement el in elements)
    Console.WriteLine(el);
                Dim markup As XElement = _
<aw:Root xmlns:aw="http://www.adventure-works.com">
    <aw:Child1>child one data 1</aw:Child1>
    <aw:Child1>child one data 2</aw:Child1>
    <aw:Child1>child one data 3</aw:Child1>
    <aw:Child2>child two data 4</aw:Child2>
    <aw:Child2>child two data 5</aw:Child2>
    <aw:Child2>child two data 6</aw:Child2>
</aw:Root>
Dim reader As XmlReader = markup.CreateReader
Dim nameTable As XmlNameTable = reader.NameTable
Dim namespaceManager As XmlNamespaceManager = New XmlNamespaceManager(nameTable)
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com")
Dim elements As IEnumerable(Of XElement) = markup.XPathSelectElements("./aw:Child1", namespaceManager)
For Each el As XElement In elements
    Console.WriteLine(el)
Next

Este ejemplo produce el siguiente resultado:

<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 1</aw:Child1>
<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 2</aw:Child1>
<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 3</aw:Child1>

Comentarios

Puede usar este método para evaluar expresiones XPath que contienen prefijos de espacio de nombres.

Aunque no se especifica el orden de las colecciones devueltas en la recomendación XML XPath Language 1.0, este método de extensión devuelve nodos en orden de documento.

Tenga en cuenta que los nodos se devuelven en orden de documento incluso cuando se usa un eje inverso, como preceding-sibling o ancestor-or-self.

Se aplica a