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