Extensions.XPathEvaluate Método

Definição

Avalia uma expressão XPath.

Sobrecargas

Name Description
XPathEvaluate(XNode, String)

Avalia uma expressão XPath.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Avalia uma expressão XPath, resolvendo prefixos de namespace usando o especificado IXmlNamespaceResolver.

Observações

Embora a ordenação das coleções devolvidas não esteja especificada na Recomendação da Linguagem XML XPath 1.0, este método de extensão devolve os nós pela ordem dos documentos.

Note que os nós são devolvidos por ordem de documento mesmo quando se usa um eixo inverso, como preceding-sibling ou ancestor-or-self.

XPathEvaluate(XNode, String)

Origem:
XNodeNavigator.cs
Origem:
XNodeNavigator.cs
Origem:
XNodeNavigator.cs
Origem:
XNodeNavigator.cs
Origem:
XNodeNavigator.cs

Avalia uma expressão XPath.

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 que se deve avaliar a expressão XPath.

expression
String

A String que contém uma expressão XPath.

Devoluções

Um objeto que pode conter um bool, um double, um string, ou um IEnumerable<T>.

Exemplos

O exemplo seguinte cria uma pequena árvore XML com um atributo e depois usa o XPathEvaluate método para recuperar o atributo.

                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())

Este exemplo produz a seguinte saída:

a="value"

Observações

Se a coleção for uma enumeração de elementos ou atributos, pode usar o Cast operador para obter uma coleção de XElement ou XAttribute.

Embora a ordenação das coleções devolvidas não esteja especificada na Recomendação da Linguagem XML XPath 1.0, este método de extensão devolve os nós pela ordem dos documentos.

Note que os nós são devolvidos por ordem de documento mesmo quando se usa um eixo inverso, como preceding-sibling ou ancestor-or-self.

Aplica-se a

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Origem:
XNodeNavigator.cs
Origem:
XNodeNavigator.cs
Origem:
XNodeNavigator.cs
Origem:
XNodeNavigator.cs
Origem:
XNodeNavigator.cs

Avalia uma expressão XPath, resolvendo prefixos de namespace usando o especificado 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 que se deve avaliar a expressão XPath.

expression
String

A String que contém uma expressão XPath.

resolver
IXmlNamespaceResolver

A IXmlNamespaceResolver para os prefixos de namespace na expressão XPath.

Devoluções

Um objeto que contém o resultado da avaliação da expressão. O objeto pode ser um bool, a double, a string, ou um IEnumerable<T>.

Exemplos

O exemplo seguinte cria uma árvore XML que contém um namespace. Utiliza um XmlReader para ler o documento XML. Depois obtém-se um XmlNameTable do XmlReader, e um do .XmlNamespaceManagerXmlNameTable Utiliza o XmlNamespaceManager ao selecionar um elemento.

                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)

Este exemplo produz a seguinte saída:

aw:Att="attdata"

Observações

Pode usar este método para avaliar expressões XPath que contenham prefixos de namespace.

Embora a ordenação das coleções devolvidas não esteja especificada na Recomendação da Linguagem XML XPath 1.0, este método de extensão devolve os nós pela ordem dos documentos.

Note que os nós são devolvidos por ordem de documento mesmo quando se usa um eixo inverso, como preceding-sibling ou ancestor-or-self.

Aplica-se a