Udostępnij za pośrednictwem


Extensions.XPathSelectElements Metoda

Definicja

Wybiera kolekcję elementów przy użyciu wyrażenia XPath.

Przeciążenia

XPathSelectElements(XNode, String)

Wybiera kolekcję elementów przy użyciu wyrażenia XPath.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Wybiera kolekcję elementów przy użyciu wyrażenia XPath, rozpoznawanie prefiksów przestrzeni nazw przy użyciu określonego IXmlNamespaceResolverelementu .

Uwagi

Mimo że kolejność zwracanych kolekcji nie jest określona w rekomendacji XML XPath Language 1.0, ta metoda rozszerzenia zwraca węzły w kolejności dokumentu.

Należy pamiętać, że węzły są zwracane w kolejności dokumentu nawet wtedy, gdy używasz osi odwrotnej, takiej jak preceding-sibling lub ancestor-or-self.

XPathSelectElements(XNode, String)

Źródło:
XNodeNavigator.cs
Źródło:
XNodeNavigator.cs
Źródło:
XNodeNavigator.cs

Wybiera kolekcję elementów przy użyciu wyrażenia 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)

Parametry

node
XNode

Wartość , XNode na której ma być obliczane wyrażenie XPath.

expression
String

Element String zawierający wyrażenie XPath.

Zwraca

XElement Element IEnumerable<T> zawierający wybrane elementy.

Przykłady

Poniższy przykład tworzy małe drzewo XML i używa XPathSelectElements go do wybierania zestawu elementów.

                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:

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

Uwagi

Mimo że kolejność zwracanych kolekcji nie jest określona w rekomendacji XML XPath Language 1.0, ta metoda rozszerzenia zwraca węzły w kolejności dokumentu.

Należy pamiętać, że węzły są zwracane w kolejności dokumentu nawet wtedy, gdy używasz osi odwrotnej, takiej jak preceding-sibling lub ancestor-or-self.

Dotyczy

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Źródło:
XNodeNavigator.cs
Źródło:
XNodeNavigator.cs
Źródło:
XNodeNavigator.cs

Wybiera kolekcję elementów przy użyciu wyrażenia XPath, rozpoznawanie prefiksów przestrzeni nazw przy użyciu określonego IXmlNamespaceResolverelementu .

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)

Parametry

node
XNode

Wartość , XNode na której ma być obliczane wyrażenie XPath.

expression
String

Element String zawierający wyrażenie XPath.

resolver
IXmlNamespaceResolver

A IXmlNamespaceResolver dla prefiksów przestrzeni nazw w wyrażeniu XPath.

Zwraca

XElement Element IEnumerable<T> zawierający wybrane elementy.

Przykłady

W tym przykładzie jest tworzone drzewo XML zawierające przestrzeń nazw. Używa elementu XmlReader do odczytywania dokumentu XML. Następnie pobiera element XmlNameTable z XmlReader, i z XmlNamespaceManager .XmlNameTable Używa elementu XmlNamespaceManager podczas wybierania listy elementów.

                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:

<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

Tej metody można użyć do oceny wyrażeń XPath zawierających prefiksy przestrzeni nazw.

Mimo że kolejność zwracanych kolekcji nie jest określona w rekomendacji XML XPath Language 1.0, ta metoda rozszerzenia zwraca węzły w kolejności dokumentu.

Należy pamiętać, że węzły są zwracane w kolejności dokumentu nawet wtedy, gdy używasz osi odwrotnej, takiej jak preceding-sibling lub ancestor-or-self.

Dotyczy