Extensions.XPathSelectElements メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
XPath 式を使用して要素のコレクションを選択します。
オーバーロード
XPathSelectElements(XNode, String) |
XPath 式を使用して要素のコレクションを選択します。 |
XPathSelectElements(XNode, String, IXmlNamespaceResolver) |
XPath 式を使用して要素のコレクションを選択します。このとき、指定された IXmlNamespaceResolver を使用して名前空間プレフィックスを解決します。 |
注釈
返されるコレクションの順序は XML XPath Language 1.0 Recommendation では指定されていませんが、この拡張メソッドはドキュメントの順序でノードを返します。
や ancestor-or-self
などのpreceding-sibling
逆軸を使用する場合でも、ノードはドキュメントの順序で返されることに注意してください。
XPathSelectElements(XNode, String)
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)
パラメーター
戻り値
選択対象の要素を格納する 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 では指定されていませんが、この拡張メソッドはドキュメントの順序でノードを返します。
や ancestor-or-self
などのpreceding-sibling
逆軸を使用する場合でも、ノードはドキュメントの順序で返されることに注意してください。
適用対象
XPathSelectElements(XNode, String, IXmlNamespaceResolver)
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)
パラメーター
- 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 では指定されていませんが、この拡張メソッドはドキュメントの順序でノードを返します。
や ancestor-or-self
などのpreceding-sibling
逆軸を使用する場合でも、ノードはドキュメントの順序で返されることに注意してください。
適用対象
.NET