次の方法で共有


XPathExpression.ReturnType プロパティ

W3C XPath 仕様で定義された XPathExpression の結果型を取得します。

Public MustOverride ReadOnly Property ReturnType As XPathResultType
[C#]
public abstract XPathResultType ReturnType {get;}
[C++]
public: __property virtual XPathResultType get_ReturnType() = 0;
[JScript]
public abstract function get ReturnType() : XPathResultType;

プロパティ値

XPathExpression の結果型を表す XPathResultType 値。

使用例

[Visual Basic, C#, C++] XPath の戻り値の型を使用して、XPath 式を確認する方法を次の例に示します。

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

Dim expr1 as XPathExpression = nav.Compile(".//price/text()*10") ' Returns a number.
Dim expr2 as XPathExpression = nav.Compile("bookstore/book/price") ' Returns a nodeset.

Evaluate(expr1, nav)
Evaluate(expr2, nav)

end sub

public shared sub Evaluate(expr as XPathExpression, nav as XPathNavigator)

select case expr.ReturnType 
  case XPathResultType.Number
    Console.WriteLine(nav.Evaluate(expr)) 
 case XPathResultType.NodeSet
    Dim i as XPathNodeIterator = nav.Select(expr)
    while (i.MoveNext())
       Console.WriteLine(i.Current.ToString())
    end while 
 case XPathResultType.Boolean
    if (CType(nav.Evaluate(expr), Boolean))
       Console.WriteLine("True!")
    end if
 case XPathResultType.String
    Console.WriteLine(nav.Evaluate(expr)) 
end select

end sub

[C#] 
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);

}

public static void Evaluate(XPathExpression expr, XPathNavigator nav){

switch(expr.ReturnType)
{
case XPathResultType.Number:
    Console.WriteLine(nav.Evaluate(expr));
    break;

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

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

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

}

}

[C++] 
__gc public 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 ((bool)nav -> Evaluate(expr))
            Console::WriteLine(S"True!");
         break;

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

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

   XPathExpression * expr1 = nav -> Compile(S".//price/text()*10"); // Returns a number.
   XPathExpression * expr2 = nav -> Compile(S"bookstore/book/price"); // Returns a nodeset.

   Sample * MySample = new Sample();

   MySample -> Evaluate(expr1, nav);
   MySample -> Evaluate(expr2, nav);
}

[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 ファミリ

参照

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