Extensions.XPathSelectElements Yöntem

Tanım

XPath ifadesi kullanarak bir öğe koleksiyonu seçer.

Aşırı Yüklemeler

Name Description
XPathSelectElements(XNode, String)

XPath ifadesi kullanarak bir öğe koleksiyonu seçer.

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Belirtilen IXmlNamespaceResolverkullanarak ad alanı ön eklerini çözümleyerek bir XPath ifadesi kullanarak bir öğe koleksiyonu seçer.

Açıklamalar

Döndürülen koleksiyonların sırası XML XPath Dil 1.0 Önerisi'nde belirtilmemiş olsa da, bu uzantı yöntemi düğümleri belge sırasına göre döndürür.

veya preceding-siblinggibi ancestor-or-self bir ters eksen kullandığınızda bile düğümlerin belge sırasında döndürüldüğünü unutmayın.

XPathSelectElements(XNode, String)

Kaynak:
XNodeNavigator.cs
Kaynak:
XNodeNavigator.cs
Kaynak:
XNodeNavigator.cs
Kaynak:
XNodeNavigator.cs
Kaynak:
XNodeNavigator.cs

XPath ifadesi kullanarak bir öğe koleksiyonu seçer.

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)

Parametreler

node
XNode

XNode XPath ifadesinin değerlendirildiği yer.

expression
String

String XPath ifadesi içeren bir.

Döndürülenler

IEnumerable<T> XElement Seçili öğeleri içeren bir öğesi.

Örnekler

Aşağıdaki örnek küçük bir XML ağacı oluşturur ve bir öğe kümesi seçmek için kullanır XPathSelectElements .

                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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Döndürülen koleksiyonların sırası XML XPath Dil 1.0 Önerisi'nde belirtilmemiş olsa da, bu uzantı yöntemi düğümleri belge sırasına göre döndürür.

veya preceding-siblinggibi ancestor-or-self bir ters eksen kullandığınızda bile düğümlerin belge sırasında döndürüldüğünü unutmayın.

Şunlara uygulanır

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

Kaynak:
XNodeNavigator.cs
Kaynak:
XNodeNavigator.cs
Kaynak:
XNodeNavigator.cs
Kaynak:
XNodeNavigator.cs
Kaynak:
XNodeNavigator.cs

Belirtilen IXmlNamespaceResolverkullanarak ad alanı ön eklerini çözümleyerek bir XPath ifadesi kullanarak bir öğe koleksiyonu seçer.

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)

Parametreler

node
XNode

XNode XPath ifadesinin değerlendirildiği yer.

expression
String

String XPath ifadesi içeren bir.

resolver
IXmlNamespaceResolver

XPath ifadesindeki ad alanı ön ekleri için A IXmlNamespaceResolver .

Döndürülenler

IEnumerable<T> XElement Seçili öğeleri içeren bir öğesi.

Örnekler

Bu örnek, ad alanı içeren bir XML ağacı oluşturur. XML belgesini okumak için bir XmlReader kullanır. Ardından içinden bir XmlNameTableXmlReaderalır ve 'XmlNamespaceManagerden bir XmlNameTable alır. Öğe listesini seçerken öğesini XmlNamespaceManager kullanır.

                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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Ad alanı ön ekleri içeren XPath ifadelerini değerlendirmek için bu yöntemi kullanabilirsiniz.

Döndürülen koleksiyonların sırası XML XPath Dil 1.0 Önerisi'nde belirtilmemiş olsa da, bu uzantı yöntemi düğümleri belge sırasına göre döndürür.

veya preceding-siblinggibi ancestor-or-self bir ters eksen kullandığınızda bile düğümlerin belge sırasında döndürüldüğünü unutmayın.

Şunlara uygulanır