現在のノードが指定した 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 オーバーロードの一覧