Extensions.XPathEvaluate Extensions.XPathEvaluate Extensions.XPathEvaluate Extensions.XPathEvaluate Method

定義

XPath 式を評価します。Evaluates an XPath expression.

オーバーロード

XPathEvaluate(XNode, String) XPathEvaluate(XNode, String) XPathEvaluate(XNode, String) XPathEvaluate(XNode, String)

XPath 式を評価します。Evaluates an XPath expression.

XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver)

XPath 式を評価します。このとき、指定された IXmlNamespaceResolver を使用して名前空間プレフィックスを解決します。Evaluates an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

注釈

XML XPath 言語 1.0 勧告で返されるコレクションの順序が指定されていませんが、この拡張メソッドは、ドキュメントの順序でノードを返します。Although the ordering of returned collections is not specified in the XML XPath Language 1.0 Recommendation, this extension method returns nodes in document order.

逆方向の軸を使用する場合でも、ノードがドキュメントの順序で返されることに注意してください。preceding-siblingまたはancestor-or-selfします。Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

XPathEvaluate(XNode, String) XPathEvaluate(XNode, String) XPathEvaluate(XNode, String) XPathEvaluate(XNode, String)

XPath 式を評価します。Evaluates an XPath expression.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ XPathEvaluate(System::Xml::Linq::XNode ^ node, System::String ^ expression);
public static object XPathEvaluate (this System.Xml.Linq.XNode node, string expression);
static member XPathEvaluate : System.Xml.Linq.XNode * string -> obj
<Extension()>
Public Function XPathEvaluate (node As XNode, expression As String) As Object

パラメーター

node
XNode XNode XNode XNode

XPath 式の評価対象となる XNodeThe XNode on which to evaluate the XPath expression.

expression
String String String String

XPath 式を含む StringA String that contains an XPath expression.

戻り値

booldoublestring、または IEnumerable<T> を含むオブジェクト。An object that can contain a bool, a double, a string, or an IEnumerable<T>.

次の例は、属性を持つ小さな XML ツリーを作成しを使用して、XPathEvaluate属性を取得するメソッド。The following example creates a small XML tree with an attribute, then uses the XPathEvaluate method to retrieve the attribute.


                String xml = "<root a='value'/>";  
XDocument d = XDocument.Parse(xml);  
IEnumerable att = (IEnumerable)d.XPathEvaluate("/root/@a");  
Console.WriteLine(att.Cast<XAttribute>().FirstOrDefault());  

                Dim d As XDocument = _  
    <?xml version='1.0'?>  
    <root a='value'/>  
Dim att As IEnumerable = CType(d.XPathEvaluate("/root/@a"), IEnumerable)  
Console.WriteLine(att.Cast(Of XAttribute)().FirstOrDefault())  

この例を実行すると、次の出力が生成されます。This example produces the following output:

a="value"  

注釈

使用することができます、コレクションが要素または属性の列挙体の場合、Castのコレクションを取得する演算子XElementまたはXAttributeします。If the collection is an enumeration of elements or attributes, you can use the Cast operator to get a collection of XElement or XAttribute.

XML XPath 言語 1.0 勧告で返されるコレクションの順序が指定されていませんが、この拡張メソッドは、ドキュメントの順序でノードを返します。Although the ordering of returned collections is not specified in the XML XPath Language 1.0 Recommendation, this extension method returns nodes in document order.

逆方向の軸を使用する場合でも、ノードがドキュメントの順序で返されることに注意してください。preceding-siblingまたはancestor-or-selfします。Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver) XPathEvaluate(XNode, String, IXmlNamespaceResolver)

XPath 式を評価します。このとき、指定された IXmlNamespaceResolver を使用して名前空間プレフィックスを解決します。Evaluates an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

public:
[System::Runtime::CompilerServices::Extension]
 static System::Object ^ XPathEvaluate(System::Xml::Linq::XNode ^ node, System::String ^ expression, System::Xml::IXmlNamespaceResolver ^ resolver);
public static object XPathEvaluate (this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver resolver);
static member XPathEvaluate : System.Xml.Linq.XNode * string * System.Xml.IXmlNamespaceResolver -> obj
<Extension()>
Public Function XPathEvaluate (node As XNode, expression As String, resolver As IXmlNamespaceResolver) As Object

パラメーター

node
XNode XNode XNode XNode

XPath 式の評価対象となる XNodeThe XNode on which to evaluate the XPath expression.

expression
String String String String

XPath 式を含む StringA String that contains an XPath expression.

resolver
IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver

XPath 式の名前空間プレフィックスの解決に使用する IXmlNamespaceResolverA IXmlNamespaceResolver for the namespace prefixes in the XPath expression.

戻り値

式の評価結果を含むオブジェクト。An object that contains the result of evaluating the expression. このオブジェクトは、booldoublestring、または IEnumerable<T> です。The object can be a bool, a double, a string, or an IEnumerable<T>.

次の例では、名前空間を含む XML ツリーを作成します。The following example creates an XML tree that contains a namespace. XmlReader を使用して XML ドキュメントを読み込ます。It uses an XmlReader to read the XML document. 次に、XmlNameTable から XmlReader を取得し、XmlNamespaceManager から XmlNameTable を取得します。It then gets an XmlNameTable from the XmlReader, and an XmlNamespaceManager from the XmlNameTable. 使用して、XmlNamespaceManager要素を選択するとします。It uses the XmlNamespaceManager when selecting an element.


                string markup =  
@"<aw:Root xmlns:aw='http://www.adventure-works.com'>  
    <aw:Child1 aw:Att='attdata'>child one data 1</aw:Child1>  
</aw:Root>";  
XmlReader reader = XmlReader.Create(new StringReader(markup));  
XElement root = XElement.Load(reader);  
XmlNameTable nameTable = reader.NameTable;  
XmlNamespaceManager namespaceManager = new XmlNamespaceManager(nameTable);  
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com");  
IEnumerable atts = (IEnumerable)root.XPathEvaluate("./aw:Child1/@aw:Att", namespaceManager);  
IEnumerable<XAttribute> attList = atts.Cast<XAttribute>();  
XAttribute att = attList.First();  
Console.WriteLine(att);  

                Dim markup As XElement = _  
    <aw:Root xmlns:aw='http://www.adventure-works.com'>  
        <aw:Child1 aw:Att='attdata'>child one data 1</aw:Child1>  
    </aw:Root>  
Dim reader As XmlReader = markup.CreateReader  
Dim nameTable As XmlNameTable = reader.NameTable  
Dim namespaceManager As XmlNamespaceManager = New XmlNamespaceManager(nameTable)  
namespaceManager.AddNamespace("aw", "http://www.adventure-works.com")  
Dim atts As IEnumerable = CType(markup.XPathEvaluate("./aw:Child1/@aw:Att", namespaceManager), IEnumerable)  
Dim attList As IEnumerable(Of XAttribute) = atts.Cast(Of XAttribute)()  
Dim att As XAttribute = attList.First()  
Console.WriteLine(att)  

この例を実行すると、次の出力が生成されます。This example produces the following output:

aw:Att="attdata"  

注釈

このメソッドを使用して、名前空間プレフィックスを含む XPath 式を評価することができます。You can use this method to evaluate XPath expressions that contain namespace prefixes.

XML XPath 言語 1.0 勧告で返されるコレクションの順序が指定されていませんが、この拡張メソッドは、ドキュメントの順序でノードを返します。Although the ordering of returned collections is not specified in the XML XPath Language 1.0 Recommendation, this extension method returns nodes in document order.

逆方向の軸を使用する場合でも、ノードがドキュメントの順序で返されることに注意してください。preceding-siblingまたはancestor-or-selfします。Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

適用対象