次の方法で共有


XPathNavigator.Matches メソッド (XPathExpression)

現在のノードが指定した XPathExpression と一致するかどうかを判断します。

Overloads Public Overridable Function Matches( _
   ByVal expr As XPathExpression _) As Boolean
[C#]
public virtual bool Matches(XPathExpressionexpr);
[C++]
public: virtual bool Matches(XPathExpression* expr);
[JScript]
public function Matches(
   expr : XPathExpression) : Boolean;

パラメータ

  • expr
    コンパイルした XSLT パターンをカプセル化する XPathExpression。

戻り値

現在のノードが XPathExpression と一致する場合は true 。それ以外の場合は false

例外

例外の種類 条件
ArgumentException expr を計算できません。

解説

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

使用例

すべての小説のタイトルを表示する例を次に示します。

 
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()
 
    ' Select all book nodes.
    Dim ni as XPathNodeIterator = nav.SelectDescendants("book", "", false)

    ' Select all book nodes that have the matching attribute value.
    Dim expr as XPathExpression = nav.Compile("book[@genre='novel']")
    while (ni.MoveNext()) 
       Dim nav2 as XPathNavigator = ni.Current.Clone()
       if (nav2.Matches(expr))
         nav2.MoveToFirstChild()
         Console.WriteLine("Book title:  {0}", nav2.Value)
       end if
    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();
 
    // Select all book nodes.
    XPathNodeIterator ni = nav.SelectDescendants("book", "", false);

    // Select all book nodes that have the matching attribute value.
    XPathExpression expr = nav.Compile("book[@genre='novel']");
    while (ni.MoveNext()) {
       XPathNavigator nav2 = ni.Current.Clone();
       if (nav2.Matches(expr)){
         nav2.MoveToFirstChild();
         Console.WriteLine("Book title:  {0}", nav2.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();

   // Select all book nodes.
   XPathNodeIterator * ni = nav -> SelectDescendants(S"book", S"", false);

   // Select all book nodes that have the matching attribute value.
   XPathExpression * expr = nav -> Compile(S"book->Item[@genre='novel']");
   while (ni -> MoveNext())
   {
      XPathNavigator * nav2 = ni -> Current -> Clone();
      if (nav2 -> Matches(expr))
      {
         nav2 -> MoveToFirstChild();
         Console::WriteLine(S"Book title: {0}", nav2 -> 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.Matches オーバーロードの一覧