Extensions.XPathSelectElements Metoda

Definicja

Wybiera kolekcję elementów przy użyciu wyrażenia XPath.Selects a collection of elements using an XPath expression.

Przeciążenia

XPathSelectElements(XNode, String)

Wybiera kolekcję elementów przy użyciu wyrażenia XPath.Selects a collection of elements using an XPath expression.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Wybiera kolekcję elementów przy użyciu wyrażenia XPath, rozwiązując prefiksy przestrzeni nazw przy użyciu określonego IXmlNamespaceResolver.Selects a collection of elements using an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

Uwagi

Chociaż porządkowanie zwracanych kolekcji nie jest określone w zaleceniu XML XPath Language 1,0, ta metoda rozszerzenia zwraca węzły w kolejności dokumentu.Although the ordering of returned collections is not specified in the XML XPath Language 1.0 Recommendation, this extension method returns nodes in document order.

Należy zauważyć, że węzły są zwracane w kolejności dokumentu nawet w przypadku używania osi odwrotnej, takiej jak preceding-sibling lub ancestor-or-self.Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

XPathSelectElements(XNode, String)

Wybiera kolekcję elementów przy użyciu wyrażenia XPath.Selects a collection of elements using an XPath expression.

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)

Parametry

node
XNode

XNode, na którym ma zostać obliczone wyrażenie XPath.The XNode on which to evaluate the XPath expression.

expression
String

String, która zawiera wyrażenie XPath.A String that contains an XPath expression.

Zwraca

IEnumerable<T> XElement, który zawiera wybrane elementy.An IEnumerable<T> of XElement that contains the selected elements.

Przykłady

Poniższy przykład tworzy małe drzewo XML i używa XPathSelectElements do wybierania zestawu elementów.The following example creates a small XML tree and uses XPathSelectElements to select a set of elements.

  
                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  

Ten przykład generuje następujące wyniki:This example produces the following output:

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

Uwagi

Chociaż porządkowanie zwracanych kolekcji nie jest określone w zaleceniu XML XPath Language 1,0, ta metoda rozszerzenia zwraca węzły w kolejności dokumentu.Although the ordering of returned collections is not specified in the XML XPath Language 1.0 Recommendation, this extension method returns nodes in document order.

Należy zauważyć, że węzły są zwracane w kolejności dokumentu nawet w przypadku używania osi odwrotnej, takiej jak preceding-sibling lub ancestor-or-self.Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Wybiera kolekcję elementów przy użyciu wyrażenia XPath, rozwiązując prefiksy przestrzeni nazw przy użyciu określonego IXmlNamespaceResolver.Selects a collection of elements using an XPath expression, resolving namespace prefixes using the specified 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);
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)

Parametry

node
XNode

XNode, na którym ma zostać obliczone wyrażenie XPath.The XNode on which to evaluate the XPath expression.

expression
String

String, która zawiera wyrażenie XPath.A String that contains an XPath expression.

resolver
IXmlNamespaceResolver

IXmlNamespaceResolver dla prefiksów przestrzeni nazw w wyrażeniu XPath.A IXmlNamespaceResolver for the namespace prefixes in the XPath expression.

Zwraca

IEnumerable<T> XElement, który zawiera wybrane elementy.An IEnumerable<T> of XElement that contains the selected elements.

Przykłady

Ten przykład tworzy drzewo XML, który zawiera przestrzeń nazw.This example creates an XML tree that contains a namespace. W celu odczytania dokumentu XML używa XmlReader.It uses an XmlReader to read the XML document. Następnie pobiera XmlNameTable z XmlReaderi XmlNamespaceManager z XmlNameTable.It then gets an XmlNameTable from the XmlReader, and an XmlNamespaceManager from the XmlNameTable. Używa XmlNamespaceManager podczas wybierania listy elementów.It uses the XmlNamespaceManager when selecting the list of elements.

  
                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  

Ten przykład generuje następujące wyniki:This example produces the following output:

<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>  

Uwagi

Ta metoda służy do obliczania wyrażeń XPath, które zawierają prefiksy przestrzeni nazw.You can use this method to evaluate XPath expressions that contain namespace prefixes.

Chociaż porządkowanie zwracanych kolekcji nie jest określone w zaleceniu XML XPath Language 1,0, ta metoda rozszerzenia zwraca węzły w kolejności dokumentu.Although the ordering of returned collections is not specified in the XML XPath Language 1.0 Recommendation, this extension method returns nodes in document order.

Należy zauważyć, że węzły są zwracane w kolejności dokumentu nawet w przypadku używania osi odwrotnej, takiej jak preceding-sibling lub ancestor-or-self.Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

Dotyczy