XPathNavigator を使用した XML データの選択

XPathNavigator クラスは、XPathDocument オブジェクトまたは XmlDocument オブジェクト内で XPath 式を使用してノード セットを選択するための一連のメソッドを提供します。 選択した後、選択されたノード セットに対して反復して処理を行うことができます。

XPathNavigator の選択メソッド

XPathNavigator クラスは、XPathDocument オブジェクトまたは XmlDocument オブジェクト内で XPath 式を使用してノード セットを選択するための一連のメソッドを提供します。 XPathNavigator クラスは、祖先、子、および子孫のノードを、XPath 式を使用するよりも高速に選択できる最適化された一連のメソッドも提供します。 選択されたノード セットは、XPathNodeIterator オブジェクトまたは、選択されたノードが単一の場合は XPathNavigator オブジェクトとして返されます。

XPath 式によるノードの選択

XPath 式を使用して 1 つのノード セットを選択するには、次のいずれかの選択メソッドを使用します。

呼び出されると、これらのメソッドは XPathNodeIterator オブジェクト、または選択が単一ノードの場合は XPathNavigator オブジェクトを使用して、自由に移動できる 1 つのノード セットを返します。

XPathNodeIterator オブジェクトを使用して移動しても、その作成に使用された XPathNavigator オブジェクトの位置に影響ありません。 SelectSingleNode メソッドから返された XPathNavigator オブジェクトは、返された単一ノード上に位置し、この場合もその作成に使用された XPathNavigator オブジェクトの位置には影響しません。

次の例は、XPathDocument オブジェクトからの XPathNavigator オブジェクトの作成、Select メソッドを使用した XPathDocument オブジェクト内のノードの選択、および XPathNodeIterator オブジェクトを使用した選択ノード上の繰り返し処理について示しています。

Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")

While nodes.MoveNext()
    Console.WriteLine(nodes.Current.Name)
End While
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator nodes = navigator.Select("/bookstore/book");

while(nodes.MoveNext())
{
    Console.WriteLine(nodes.Current.Name);
}

この例は、books.xml ファイルを入力として使用します。

<?xml version="1.0" encoding="utf-8" ?> 
<bookstore>
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
        <title>The Autobiography of Benjamin Franklin</title>
        <author>
            <first-name>Benjamin</first-name>
            <last-name>Franklin</last-name>
        </author>
        <price>8.99</price>
    </book>
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
        <title>The Confidence Man</title>
        <author>
            <first-name>Herman</first-name>
            <last-name>Melville</last-name>
        </author>
        <price>11.99</price>
    </book>
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
        <title>The Gorgias</title>
        <author>
            <name>Plato</name>
        </author>
        <price>9.99</price>
    </book>
</bookstore>

最適化された選択メソッド

XPathNavigator クラスの SelectChildrenSelectAncestors、および SelectDescendants メソッドは、子、子孫、および祖先のノードにアクセスする一般的な XPath 式に相当します。 これらのメソッドのパフォーマンスは最適化されており、対応する XPath 式よりも高速です。 SelectChildrenSelectAncestors、および SelectDescendants メソッドは、XPathNodeType 値または選択するノードのローカル名と名前空間 URI を基にして祖先、子、および子孫のノードを選択します。 選択された祖先、子、および子孫のノードは XPathNodeIterator オブジェクトとして返されます。

参照

参照

XmlDocument

XPathDocument

XPathNavigator

概念

XPath データ モデルを使用した XML データの処理

XPathNavigator による Xpath 式の評価

XPathNavigator によるノードの一致

XPath クエリで認識されるノード型

XPath クエリおよび名前空間

コンパイルされた XPath 式