XPathExpressionとは? わかりやすく解説

XPathExpression クラス

コンパイル済みXPath 式を表す、型指定されクラス提供します

名前空間: System.Xml.XPath
アセンブリ: System.Xml (system.xml.dll 内)
構文構文

Public MustInherit Class
 XPathExpression
Dim instance As XPathExpression
public abstract class XPathExpression
public ref class XPathExpression abstract
public abstract class XPathExpression
public abstract class XPathExpression
解説解説

このクラスは、XPathNavigator クラスCompile メソッド結果として返されます。これは、XPathNavigator クラスの Evaluate、MatchesSelect、および SelectSingleNode 各メソッドパラメータです。

継承時の注意 XPathExpression クラスから継承する場合は、次のメンバオーバーライドする必要があります

使用例使用例

XPath戻り値の型を使用してXPath 式を確認する方法次の例に示します

Imports System
Imports System.Xml
Imports System.Xml.XPath

Public Class XPathExpressionExample

    Public Shared Sub Main()
        Dim document As XPathDocument = New
 XPathDocument("contosoBooks.xml")
        Dim navigator As XPathNavigator = document.CreateNavigator()

        Dim expression1 As XPathExpression
 = XPathExpression.Compile(".//bk:price/text()*10")
  ' Returns a number.
        Dim expression2 As XPathExpression
 = XPathExpression.Compile("bk:bookstore/bk:book/bk:price")
  ' Returns a nodeset.

        Dim manager As XmlNamespaceManager
 = New XmlNamespaceManager(navigator.NameTable)
        manager.AddNamespace("bk", "http://www.contoso.com/books")

        expression1.SetContext(manager)
        expression2.SetContext(manager)

        Evaluate(expression1, navigator)
        Evaluate(expression2, navigator)

    End Sub

    Public Shared Sub Evaluate(ByVal
 expression As XPathExpression, ByVal navigator
 As XPathNavigator)

        Select Case expression.ReturnType
            Case XPathResultType.Number
                Console.WriteLine(navigator.Evaluate(expression))
                Exit Sub

            Case XPathResultType.NodeSet
                Dim nodes As XPathNodeIterator
 = navigator.Select(expression)
                While nodes.MoveNext()
                    Console.WriteLine(nodes.Current.ToString())
                End While

            Case XPathResultType.Boolean
                If CType(navigator.Evaluate(expression), Boolean)
 Then
                    Console.WriteLine("True!")
                End If

            Case XPathResultType.String
                Console.WriteLine(navigator.Evaluate(expression))
        End Select

    End Sub
End Class
using System;
using System.Xml;
using System.Xml.XPath;

public class XPathExpressionExample
{
    public static void Main()
    {
        XPathDocument document = new XPathDocument("contosoBooks.xml");
        XPathNavigator navigator = document.CreateNavigator();

        XPathExpression expression1 = XPathExpression.Compile(".//bk:price/text()*10");
 // Returns a number.
        XPathExpression expression2 = XPathExpression.Compile("bk:bookstore/bk:book/bk:price");
 // Returns a nodeset.

        XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable);
        manager.AddNamespace("bk", "http://www.contoso.com/books");

        expression1.SetContext(manager);
        expression2.SetContext(manager);

        Evaluate(expression1, navigator);
        Evaluate(expression2, navigator);
    }

    public static void Evaluate(XPathExpression
 expression, XPathNavigator navigator)
    {
        switch (expression.ReturnType)
        {
            case XPathResultType.Number:
                Console.WriteLine(navigator.Evaluate(expression));
                break;

            case XPathResultType.NodeSet:
                XPathNodeIterator nodes = navigator.Select(expression);
                while (nodes.MoveNext())
                {
                    Console.WriteLine(nodes.Current.ToString());
                }
                break;

            case XPathResultType.Boolean:
                if ((bool)navigator.Evaluate(expression))
                    Console.WriteLine("True!");
                break;

            case XPathResultType.String:
                Console.WriteLine(navigator.Evaluate(expression));
                break;
        }
    }
}
public ref class Sample
{
public:
   static void Evaluate( XPathExpression^ expr,
 XPathNavigator^ nav )
   {
      XPathNodeIterator^ i = nav->Select(expr);
      switch ( expr->ReturnType )
      {
         case XPathResultType::Number:
            Console::WriteLine( nav->Evaluate( expr ) );
            break;

         case XPathResultType::NodeSet:
            while ( i->MoveNext() )
                        Console::WriteLine( i->Current );
            break;

         case XPathResultType::Boolean:
            if ( *safe_cast<bool^>(nav->Evaluate(
 expr )) )
                        Console::WriteLine( "True!" );
            break;

         case XPathResultType::String:
            Console::WriteLine( nav->Evaluate( expr ) );
            break;
      }
   }

};

int main()
{
   XPathDocument^ doc = gcnew XPathDocument( "books.xml" );
   XPathNavigator^ nav = doc->CreateNavigator();
   XPathExpression^ expr1 = nav->Compile( ".//price/text()*10"
 ); // Returns a number.

   XPathExpression^ expr2 = nav->Compile( "bookstore/book/price" );
 // Returns a nodeset.

   Sample^ MySample = gcnew Sample;
   MySample->Evaluate( expr1, nav );
   MySample->Evaluate( expr2, nav );
}

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

    XPathExpression expr1 = nav.Compile(".//price/text()*10");
    // Returns a number.
    XPathExpression expr2 = nav.Compile("bookstore/book/price");
    // Returns a nodeset.
    Evaluate(expr1, nav);
    Evaluate(expr2, nav);
} //main

public static void Evaluate(XPathExpression
 expr, XPathNavigator nav)
{
    switch (expr.get_ReturnType()) {
        case XPathResultType.Number:
            Console.WriteLine(nav.Evaluate(expr));
            break;

        case XPathResultType.NodeSet:
            XPathNodeIterator i = nav.Select(expr);
            while (i.MoveNext()) {
                Console.WriteLine(i.get_Current().ToString());
            }
            break;

        case XPathResultType.Boolean:
            if (System.Convert.ToBoolean(nav.Evaluate(expr)))
 {
                Console.WriteLine("True!");
            }
            break;

        case XPathResultType.String:
            Console.WriteLine(nav.Evaluate(expr));
            break;
    }
} //Evaluate 

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

<bookstore xmlns="http://www.contoso.com/books">
    <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>
継承階層継承階層
System.Object
  System.Xml.XPath.XPathExpression
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
XPathExpression メンバ
System.Xml.XPath 名前空間

XPathExpression プロパティ


パブリック プロパティパブリック プロパティ

参照参照

関連項目

XPathExpression クラス
System.Xml.XPath 名前空間

XPathExpression メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

XPathExpression クラス
System.Xml.XPath 名前空間

XPathExpression メンバ

コンパイル済みXPath 式を表す、型指定されクラス提供します

XPathExpression データ型公開されるメンバを以下の表に示します


パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

XPathExpression クラス
System.Xml.XPath 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「XPathExpression」の関連用語

XPathExpressionのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XPathExpressionのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS