次の方法で共有


XPathNavigator.Select メソッド (String)

指定した XPath 式を使用して、ノード セットを選択します。

Overloads Public Overridable Function Select( _
   ByVal xpath As String _) As XPathNodeIterator
[C#]
public virtual XPathNodeIterator Select(stringxpath);
[C++]
public: virtual XPathNodeIterator* Select(String* xpath);
[JScript]
public function Select(
   xpath : String) : XPathNodeIterator;

パラメータ

  • xpath
    XPath 式を表す文字列。

戻り値

選択されたノード セットを指している XPathNodeIterator

例外

例外の種類 条件
ArgumentException xpath にエラーが含まれているか、またはその戻り値の型がノード セットではありません。

解説

選択項目のコンテキストは、このメソッドを呼び出したときのナビゲータの位置です。このメソッドを呼び出すと、返される XPathNodeIterator は、選択したノードのセットを表します。 XPathNodeIteratorMoveNext を使用して、選択したノード セットをウォークします。 XPathNavigator で任意の Move メソッドを使用して、現在のノード ツリー内を移動します。 XPathNavigator ナビゲーション メソッドは、選択したノードおよび XPathNodeIterator に依存しません。

選択したノード セットをウォークする C# コードを次に示します。

XPathNodeIterator iterator = nav.Select("/bookstore/book");
while (iterator.MoveNext()){
 Console.WriteLine(Iterator.Current.Name);
}
   

XPath 式で名前空間の解決が必要な場合は、 XPathExpression を引数としてとるオーバーロードを使用します。

Select を再度呼び出すと、新しい Select 呼び出しと一致する、選択したノード セットを指す新しい XPathNodeIterator が返されます。2 つの XPathNodeIterator オブジェクトが互いに完全に独立しています。

このメソッドは、 XPathNavigator 状態には影響を与えません。

使用例

[Visual Basic, C#, C++] すべてのタイトル ノードを選択し、表示する例を次に示します。

 
Imports System
Imports System.Xml.XPath

public class Sample

  public shared sub Main()

    Dim doc as XPathDocument = new XPathDocument("books.xml")
    Dim nav as XPathNavigator = doc.CreateNavigator()

    Dim ni as XPathNodeIterator = nav.Select("/bookstore/book/title")
    while (ni.MoveNext())
       Console.WriteLine(ni.Current.Value)
    end while

  end sub
end class

[C#] 
using System;
using System.Xml.XPath;

public class Sample
{
  public static void Main()
  {

    XPathDocument doc = new XPathDocument("books.xml");
    XPathNavigator nav = doc.CreateNavigator();

    XPathNodeIterator ni = nav.Select("/bookstore/book/title");
    while (ni.MoveNext())
       Console.WriteLine(ni.Current.Value);
  }
}

[C++] 
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Xml::XPath;

int main() 
{
   XPathDocument* doc = new XPathDocument(S"books.xml");
   XPathNavigator * nav = doc -> CreateNavigator();

   XPathNodeIterator * ni = nav -> Select(S"/bookstore/book/title");
   while (ni -> MoveNext())
      Console::WriteLine(ni -> Current -> Value);
}

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

<bookstore>
  <book genre="autobiography" publicationdate="1981" 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" 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" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

XPathNavigator クラス | XPathNavigator メンバ | System.Xml.XPath 名前空間 | XPathNavigator.Select オーバーロードの一覧 | SelectNodes | SelectSingleNode | SelectDescendants | SelectChildren | SelectAncestors