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

Definition

Wertet einen XPath-Ausdruck aus.Evaluates an XPath expression.

Überlädt

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

Wertet einen XPath-Ausdruck aus.Evaluates an XPath expression.

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

Wertet einen XPath-Ausdruck aus und löst Namespacepräfixe mit dem angegebenen IXmlNamespaceResolver auf.Evaluates an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

Hinweise

Obwohl die Reihenfolge der zurückgegebenen Auflistungen in der XML XPath Language 1,0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in Dokument Reihenfolge zurück.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.

Beachten Sie, dass Knoten in Dokument Reihenfolge zurückgegeben werden, auch wenn Sie eine preceding-sibling umgekehrte ancestor-or-selfAchse verwenden, z. b. oder.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)

Wertet einen XPath-Ausdruck aus.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

Parameter

node
XNode XNode XNode XNode

Der XNode, in dem der XPath-Ausdruck ausgewertet wird.The XNode on which to evaluate the XPath expression.

expression
String String String String

Ein String, der einen XPath-Ausdruck enthält.A String that contains an XPath expression.

Gibt zurück

Ein Objekt, das einen bool, einen double, einen string oder einen IEnumerable<T> enthalten kann.An object that can contain a bool, a double, a string, or an IEnumerable<T>.

Beispiele

Im folgenden Beispiel wird eine kleine XML-Struktur mit einem-Attribut erstellt und XPathEvaluate dann die-Methode verwendet, um das-Attribut abzurufen.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())  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

a="value"  

Hinweise

Wenn die Auflistung eine Enumeration von Elementen oder Attributen ist, können Sie den Cast -Operator verwenden, um eine Auflistung von XAttribute XElement oder zu erhalten.If the collection is an enumeration of elements or attributes, you can use the Cast operator to get a collection of XElement or XAttribute.

Obwohl die Reihenfolge der zurückgegebenen Auflistungen in der XML XPath Language 1,0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in Dokument Reihenfolge zurück.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.

Beachten Sie, dass Knoten in Dokument Reihenfolge zurückgegeben werden, auch wenn Sie eine preceding-sibling umgekehrte ancestor-or-selfAchse verwenden, z. b. oder.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)

Wertet einen XPath-Ausdruck aus und löst Namespacepräfixe mit dem angegebenen IXmlNamespaceResolver auf.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

Parameter

node
XNode XNode XNode XNode

Der XNode, in dem der XPath-Ausdruck ausgewertet wird.The XNode on which to evaluate the XPath expression.

expression
String String String String

Ein String, der einen XPath-Ausdruck enthält.A String that contains an XPath expression.

resolver
IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver

Ein IXmlNamespaceResolver für die Namespacepräfixe im XPath-Ausdruck.A IXmlNamespaceResolver for the namespace prefixes in the XPath expression.

Gibt zurück

Ein Objekt, das das Ergebnis aus der Auswertung des Ausdrucks enthält.An object that contains the result of evaluating the expression. Das Objekt kann ein bool, ein double, ein string oder ein IEnumerable<T> sein.The object can be a bool, a double, a string, or an IEnumerable<T>.

Beispiele

Im folgenden Beispiel wird eine XML-Struktur erstellt, die einen Namespace enthält.The following example creates an XML tree that contains a namespace. Zum Lesen des XML-Dokuments kommt dabei ein XmlReader zum Einsatz.It uses an XmlReader to read the XML document. Anschließend werden eine XmlNameTable aus dem XmlReader und ein XmlNamespaceManager aus der XmlNameTable abgerufen.It then gets an XmlNameTable from the XmlReader, and an XmlNamespaceManager from the XmlNameTable. Wenn ein Element XmlNamespaceManager ausgewählt wird, wird das verwendet.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)  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

aw:Att="attdata"  

Hinweise

Mit dieser Methode können Sie XPath-Ausdrücke auswerten, die Namespace Präfixe enthalten.You can use this method to evaluate XPath expressions that contain namespace prefixes.

Obwohl die Reihenfolge der zurückgegebenen Auflistungen in der XML XPath Language 1,0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in Dokument Reihenfolge zurück.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.

Beachten Sie, dass Knoten in Dokument Reihenfolge zurückgegeben werden, auch wenn Sie eine preceding-sibling umgekehrte ancestor-or-selfAchse verwenden, z. b. oder.Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

Gilt für: