次の方法で共有


XPathNavigator.Matches メソッド

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

オーバーロードの一覧

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

[Visual Basic] Overloads Public Overridable Function Matches(String) As Boolean

[C#] public virtual bool Matches(string);

[C++] public: virtual bool Matches(String*);

[JScript] public function Matches(String) : Boolean;

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

[Visual Basic] Overloads Public Overridable Function Matches(XPathExpression) As Boolean

[C#] public virtual bool Matches(XPathExpression);

[C++] public: virtual bool Matches(XPathExpression*);

[JScript] public function Matches(XPathExpression) : Boolean;

使用例

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

[Visual Basic, C#, C++] メモ   ここでは、Matches のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。

 
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++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

参照

XPathNavigator クラス | XPathNavigator メンバ | System.Xml.XPath 名前空間