Extensions.XPathEvaluate Yöntem

Tanım

Bir XPath ifadesini değerlendirir.Evaluates an XPath expression.

Aşırı Yüklemeler

XPathEvaluate(XNode, String)

Bir XPath ifadesini değerlendirir.Evaluates an XPath expression.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Belirtilen ad alanı öneklerini çözümlemek için bir XPath ifadesi değerlendirir IXmlNamespaceResolver .Evaluates an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

Açıklamalar

Döndürülen koleksiyonların sıralaması XML XPath Language 1,0 önerisi içinde belirtilmese de, bu genişletme yöntemi belge sırasıyla düğümleri döndürür.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.

Ya da gibi bir ters eksen kullandığınızda bile, düğümlerin belge sırasıyla döndürüleceğini unutmayın 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)

Bir XPath ifadesini değerlendirir.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

Parametreler

node
XNode

XNodeXPath ifadesinin değerlendirileceği.The XNode on which to evaluate the XPath expression.

expression
String

Bir String XPath ifadesi içeren bir.A String that contains an XPath expression.

Döndürülenler

Object

,, A veya içeren bir nesne bool double string IEnumerable<T> .An object that can contain a bool, a double, a string, or an IEnumerable<T>.

Örnekler

Aşağıdaki örnek bir özniteliği olan küçük bir XML ağacı oluşturur ve sonra XPathEvaluate özniteliğini almak için yöntemini kullanır.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())  

Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:

a="value"  

Açıklamalar

Koleksiyon öğelerin veya özniteliklerin bir Cast listelecidir, veya koleksiyonunu almak için işlecini kullanabilirsiniz 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.

Döndürülen koleksiyonların sıralaması XML XPath Language 1,0 önerisi içinde belirtilmese de, bu genişletme yöntemi belge sırasıyla düğümleri döndürür.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.

Ya da gibi bir ters eksen kullandığınızda bile, düğümlerin belge sırasıyla döndürüleceğini unutmayın 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.

Şunlara uygulanır

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Belirtilen ad alanı öneklerini çözümlemek için bir XPath ifadesi değerlendirir 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);
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

Parametreler

node
XNode

XNodeXPath ifadesinin değerlendirileceği.The XNode on which to evaluate the XPath expression.

expression
String

Bir String XPath ifadesi içeren bir.A String that contains an XPath expression.

resolver
IXmlNamespaceResolver

IXmlNamespaceResolverXPath ifadesindeki ad alanı önekleri için A.A IXmlNamespaceResolver for the namespace prefixes in the XPath expression.

Döndürülenler

Object

İfadenin değerlendirilme sonucunu içeren nesne.An object that contains the result of evaluating the expression. Nesne bir bool , double ,,, string veya olabilir IEnumerable<T> .The object can be a bool, a double, a string, or an IEnumerable<T>.

Örnekler

Aşağıdaki örnek, bir ad alanı içeren bir XML ağacı oluşturur.The following example creates an XML tree that contains a namespace. XmlReaderXML belgesini okumak için bir kullanır.It uses an XmlReader to read the XML document. Daha sonra öğesinden XmlNameTable XmlReader ve arasında bir alır XmlNamespaceManager XmlNameTable .It then gets an XmlNameTable from the XmlReader, and an XmlNamespaceManager from the XmlNameTable. XmlNamespaceManagerÖğe seçerken öğesini kullanır.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)  

Bu örnek aşağıdaki çıktıyı üretir:This example produces the following output:

aw:Att="attdata"  

Açıklamalar

Bu yöntemi, ad alanı öneklerini içeren XPath ifadelerini değerlendirmek için kullanabilirsiniz.You can use this method to evaluate XPath expressions that contain namespace prefixes.

Döndürülen koleksiyonların sıralaması XML XPath Language 1,0 önerisi içinde belirtilmese de, bu genişletme yöntemi belge sırasıyla düğümleri döndürür.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.

Ya da gibi bir ters eksen kullandığınızda bile, düğümlerin belge sırasıyla döndürüleceğini unutmayın 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.

Şunlara uygulanır