Extensions.XPathEvaluate Método

Definição

Avalia uma expressão XPath.Evaluates an XPath expression.

Sobrecargas

XPathEvaluate(XNode, String)

Avalia uma expressão XPath.Evaluates an XPath expression.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Avalia uma expressão XPath, resolvendo os prefixos de namespace usando o IXmlNamespaceResolver especificado.Evaluates an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

Comentários

Embora a ordenação de coleções retornadas não seja especificada na recomendação do XML XPath Language 1,0, esse método de extensão retorna nós na ordem do documento.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.

Observe que os nós são retornados na ordem do documento mesmo quando você usa um eixo reverso, como preceding-sibling ou 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)

Avalia uma expressão 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

Parâmetros

node
XNode

O XNode no qual a expressão XPath será avaliada.The XNode on which to evaluate the XPath expression.

expression
String

Um String que contém uma expressão XPath.A String that contains an XPath expression.

Retornos

Object

Um objeto que pode conter bool, double, string ou IEnumerable<T>.An object that can contain a bool, a double, a string, or an IEnumerable<T>.

Exemplos

O exemplo a seguir cria uma árvore XML pequena com um atributo e, em seguida, usa o XPathEvaluate método para recuperar o atributo.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())  

Esse exemplo gera a saída a seguir:This example produces the following output:

a="value"  

Comentários

Se a coleção for uma enumeração de elementos ou atributos, você poderá usar o Cast operador para obter uma coleção de XElement ou 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.

Embora a ordenação de coleções retornadas não seja especificada na recomendação do XML XPath Language 1,0, esse método de extensão retorna nós na ordem do documento.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.

Observe que os nós são retornados na ordem do documento mesmo quando você usa um eixo reverso, como preceding-sibling ou 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.

Aplica-se a

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Avalia uma expressão XPath, resolvendo os prefixos de namespace usando o IXmlNamespaceResolver especificado.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

Parâmetros

node
XNode

O XNode no qual a expressão XPath será avaliada.The XNode on which to evaluate the XPath expression.

expression
String

Um String que contém uma expressão XPath.A String that contains an XPath expression.

resolver
IXmlNamespaceResolver

Um IXmlNamespaceResolver para os prefixos de namespace na expressão XPath.A IXmlNamespaceResolver for the namespace prefixes in the XPath expression.

Retornos

Object

Um objeto que contém o resultado da avaliação da expressão.An object that contains the result of evaluating the expression. O objeto pode ser um bool, double, string ou IEnumerable<T>.The object can be a bool, a double, a string, or an IEnumerable<T>.

Exemplos

O exemplo a seguir cria uma árvore XML que contém um namespace.The following example creates an XML tree that contains a namespace. Usa XmlReader para ler o documento XML.It uses an XmlReader to read the XML document. Então obtém XmlNameTable de XmlReader, e XmlNamespaceManager de XmlNameTable.It then gets an XmlNameTable from the XmlReader, and an XmlNamespaceManager from the XmlNameTable. Ele usa o XmlNamespaceManager ao selecionar um elemento.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)  

Esse exemplo gera a saída a seguir:This example produces the following output:

aw:Att="attdata"  

Comentários

Você pode usar esse método para avaliar as expressões XPath que contêm prefixos de namespace.You can use this method to evaluate XPath expressions that contain namespace prefixes.

Embora a ordenação de coleções retornadas não seja especificada na recomendação do XML XPath Language 1,0, esse método de extensão retorna nós na ordem do documento.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.

Observe que os nós são retornados na ordem do documento mesmo quando você usa um eixo reverso, como preceding-sibling ou 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.

Aplica-se a