Extensions.XPathSelectElements Extensions.XPathSelectElements Extensions.XPathSelectElements Extensions.XPathSelectElements Method

定義

XPath 式を使用して要素のコレクションを選択します。Selects a collection of elements using an XPath expression.

オーバーロード

XPathSelectElements(XNode, String) XPathSelectElements(XNode, String) XPathSelectElements(XNode, String) XPathSelectElements(XNode, String)

XPath 式を使用して要素のコレクションを選択します。Selects a collection of elements using an XPath expression.

XPathSelectElements(XNode, String, IXmlNamespaceResolver) XPathSelectElements(XNode, String, IXmlNamespaceResolver) XPathSelectElements(XNode, String, IXmlNamespaceResolver) XPathSelectElements(XNode, String, IXmlNamespaceResolver)

XPath 式を使用して要素のコレクションを選択します。このとき、指定された IXmlNamespaceResolver を使用して名前空間プレフィックスを解決します。Selects a collection of elements using an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

注釈

返されるコレクションの順序は XML XPath 言語1.0 勧告では指定されていませんが、この拡張メソッドはドキュメントの順序でノードを返します。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.

preceding-siblingancestor-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) XPathSelectElements(XNode, String) XPathSelectElements(XNode, String) XPathSelectElements(XNode, String)

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)

パラメーター

node
XNode XNode XNode XNode

XPath 式の評価対象となる XNodeThe XNode on which to evaluate the XPath expression.

expression
String String String String

XPath 式を含む StringA String that contains an XPath expression.

戻り値

選択対象の要素を格納する IEnumerable<T>XElementAn IEnumerable<T> of XElement that contains the selected elements.

次の例では、小さな XML ツリーを作成し、XPathSelectElements を使用して要素のセットを選択します。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  

この例を実行すると、次の出力が生成されます。This example produces the following output:

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

注釈

返されるコレクションの順序は XML XPath 言語1.0 勧告では指定されていませんが、この拡張メソッドはドキュメントの順序でノードを返します。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.

preceding-siblingancestor-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) XPathSelectElements(XNode, String, IXmlNamespaceResolver) XPathSelectElements(XNode, String, IXmlNamespaceResolver) XPathSelectElements(XNode, String, IXmlNamespaceResolver)

XPath 式を使用して要素のコレクションを選択します。このとき、指定された 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)

パラメーター

node
XNode XNode XNode XNode

XPath 式の評価対象となる XNodeThe XNode on which to evaluate the XPath expression.

expression
String String String String

XPath 式を含む StringA String that contains an XPath expression.

resolver
IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver

XPath 式の名前空間プレフィックスの解決に使用する IXmlNamespaceResolverA IXmlNamespaceResolver for the namespace prefixes in the XPath expression.

戻り値

選択対象の要素を格納する IEnumerable<T>XElementAn IEnumerable<T> of XElement that contains the selected elements.

この例では、名前空間を含む XML ツリーを作成します。This example creates an XML tree that contains a namespace. XmlReader を使用して XML ドキュメントを読み込ます。It uses an XmlReader to read the XML document. 次に、XmlNameTable から XmlReader を取得し、XmlNamespaceManager から XmlNameTable を取得します。It then gets an XmlNameTable from the XmlReader, and an XmlNamespaceManager from the XmlNameTable. 要素の一覧XmlNamespaceManagerを選択するときに、を使用します。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  

この例を実行すると、次の出力が生成されます。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>  

注釈

このメソッドを使用すると、名前空間プレフィックスを含む XPath 式を評価できます。You can use this method to evaluate XPath expressions that contain namespace prefixes.

返されるコレクションの順序は XML XPath 言語1.0 勧告では指定されていませんが、この拡張メソッドはドキュメントの順序でノードを返します。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.

preceding-siblingancestor-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.

適用対象