Extensions.XPathSelectElements メソッド

定義

XPath 式を使用して要素のコレクションを選択します。

オーバーロード

名前 説明
XPathSelectElements(XNode, String)

XPath 式を使用して要素のコレクションを選択します。

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

XPath 式を使用して要素のコレクションを選択し、指定した IXmlNamespaceResolverを使用して名前空間プレフィックスを解決します。

注釈

返されるコレクションの順序は XML XPath Language 1.0 Recommendation では指定されていませんが、この拡張メソッドはドキュメントの順序でノードを返します。

preceding-siblingancestor-or-selfなど、逆軸を使用する場合でも、ノードはドキュメントの順序で返されることに注意してください。

XPathSelectElements(XNode, String)

ソース:
XNodeNavigator.cs
ソース:
XNodeNavigator.cs
ソース:
XNodeNavigator.cs
ソース:
XNodeNavigator.cs
ソース:
XNodeNavigator.cs

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)

パラメーター

node
XNode

XPath 式を評価する XNode

expression
String

XPath 式を含む String

返品

選択した要素を含むIEnumerable<T>XElement

次の例では、小さな XML ツリーを作成し、 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

この例を実行すると、次の出力が生成されます。

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

注釈

返されるコレクションの順序は XML XPath Language 1.0 Recommendation では指定されていませんが、この拡張メソッドはドキュメントの順序でノードを返します。

preceding-siblingancestor-or-selfなど、逆軸を使用する場合でも、ノードはドキュメントの順序で返されることに注意してください。

適用対象

XPathSelectElements(XNode, String, IXmlNamespaceResolver)

ソース:
XNodeNavigator.cs
ソース:
XNodeNavigator.cs
ソース:
XNodeNavigator.cs
ソース:
XNodeNavigator.cs
ソース:
XNodeNavigator.cs

XPath 式を使用して要素のコレクションを選択し、指定した 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)

パラメーター

node
XNode

XPath 式を評価する XNode

expression
String

XPath 式を含む String

resolver
IXmlNamespaceResolver

XPath 式の名前空間プレフィックスの IXmlNamespaceResolver

返品

選択した要素を含むIEnumerable<T>XElement

この例では、名前空間を含む XML ツリーを作成します。 XmlReaderを使用して XML ドキュメントを読み取ります。 その後、XmlNameTableからXmlReaderを取得し、XmlNamespaceManagerからXmlNameTableを取得します。 要素の一覧を選択するときに XmlNamespaceManager を使用します。

                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

この例を実行すると、次の出力が生成されます。

<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 式を評価できます。

返されるコレクションの順序は XML XPath Language 1.0 Recommendation では指定されていませんが、この拡張メソッドはドキュメントの順序でノードを返します。

preceding-siblingancestor-or-selfなど、逆軸を使用する場合でも、ノードはドキュメントの順序で返されることに注意してください。

適用対象