Extensions.XPathEvaluate Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Evalúa una expresión XPath.
Sobrecargas
XPathEvaluate(XNode, String) |
Evalúa una expresión XPath. |
XPathEvaluate(XNode, String, IXmlNamespaceResolver) |
Evalúa una expresión XPath, resolviendo los prefijos de espacio de nombres mediante el IXmlNamespaceResolver especificado. |
Comentarios
Aunque el orden de las colecciones devueltas no se especifica en la recomendación XML XPath Language 1.0, este método de extensión devuelve nodos en orden de documento.
Tenga en cuenta que los nodos se devuelven en orden de documento incluso cuando se usa un eje inverso, como preceding-sibling
o ancestor-or-self
.
XPathEvaluate(XNode, String)
- Source:
- XNodeNavigator.cs
- Source:
- XNodeNavigator.cs
- Source:
- XNodeNavigator.cs
Evalúa una expresión 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
Devoluciones
Objeto que puede contener un valor bool
, double
, string
o IEnumerable<T>.
Ejemplos
En el ejemplo siguiente se crea un pequeño árbol XML con un atributo y, a continuación, se usa el XPathEvaluate método para recuperar el 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 ejemplo produce el siguiente resultado:
a="value"
Comentarios
Si la colección es una enumeración de elementos o atributos, puede usar el Cast
operador para obtener una colección de XElement o XAttribute.
Aunque el orden de las colecciones devueltas no se especifica en la recomendación XML XPath Language 1.0, este método de extensión devuelve nodos en orden de documento.
Tenga en cuenta que los nodos se devuelven en orden de documento incluso cuando se usa un eje inverso, como preceding-sibling
o ancestor-or-self
.
Se aplica a
XPathEvaluate(XNode, String, IXmlNamespaceResolver)
- Source:
- XNodeNavigator.cs
- Source:
- XNodeNavigator.cs
- Source:
- XNodeNavigator.cs
Evalúa una expresión XPath, resolviendo los prefijos de espacio de nombres mediante el IXmlNamespaceResolver especificado.
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
- resolver
- IXmlNamespaceResolver
IXmlNamespaceResolver para los prefijos de espacio de nombres de la expresión XPath.
Devoluciones
Objeto que contiene el resultado de evaluar la expresión. El objeto puede ser bool
, double
, string
o IEnumerable<T>.
Ejemplos
En el ejemplo siguiente se crea un árbol XML que contiene un espacio de nombres. Usa un objeto XmlReader para leer el documento XML. Después obtiene un objeto XmlNameTable de XmlReader y un objeto XmlNamespaceManager de XmlNameTable. Usa al XmlNamespaceManager seleccionar un 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 ejemplo produce el siguiente resultado:
aw:Att="attdata"
Comentarios
Puede usar este método para evaluar expresiones XPath que contienen prefijos de espacio de nombres.
Aunque el orden de las colecciones devueltas no se especifica en la recomendación XML XPath Language 1.0, este método de extensión devuelve nodos en orden de documento.
Tenga en cuenta que los nodos se devuelven en orden de documento incluso cuando se usa un eje inverso, como preceding-sibling
o ancestor-or-self
.