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

Definizione

Valuta un'espressione XPath.Evaluates an XPath expression.

Overload

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

Valuta un'espressione XPath.Evaluates an XPath expression.

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

Valuta un'espressione XPath risolvendo i prefissi degli spazi dei nomi utilizzando l'oggetto IXmlNamespaceResolver specificato.Evaluates an XPath expression, resolving namespace prefixes using the specified IXmlNamespaceResolver.

Commenti

Anche se l'ordine delle raccolte restituite non è specificato nella raccomandazione XML XPath Language 1,0, questo metodo di estensione restituisce i nodi in base all'ordine dei documenti.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.

Si noti che i nodi vengono restituiti nell'ordine del documento anche quando si usa un asse inverso ancestor-or-self, ad esempio preceding-sibling o.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)

Valuta un'espressione 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

Parametri

node
XNode XNode XNode XNode

XNode sul quale valutare l'espressione XPath.The XNode on which to evaluate the XPath expression.

expression
String String String String

String contenente un'espressione XPath.A String that contains an XPath expression.

Restituisce

Oggetto che può contenere bool, double, string o IEnumerable<T>.An object that can contain a bool, a double, a string, or an IEnumerable<T>.

Esempi

Nell'esempio seguente viene creato un piccolo albero XML con un attributo, quindi viene XPathEvaluate utilizzato il metodo per recuperare l'attributo.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())  

Questo esempio produce il seguente output:This example produces the following output:

a="value"  

Commenti

Se la raccolta è un'enumerazione di elementi o attributi, è possibile usare l' Cast operatore per ottenere una raccolta di XElement o 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.

Anche se l'ordine delle raccolte restituite non è specificato nella raccomandazione XML XPath Language 1,0, questo metodo di estensione restituisce i nodi in base all'ordine dei documenti.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.

Si noti che i nodi vengono restituiti nell'ordine del documento anche quando si usa un asse inverso ancestor-or-self, ad esempio preceding-sibling o.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)

Valuta un'espressione XPath risolvendo i prefissi degli spazi dei nomi utilizzando l'oggetto IXmlNamespaceResolver specificato.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

Parametri

node
XNode XNode XNode XNode

XNode sul quale valutare l'espressione XPath.The XNode on which to evaluate the XPath expression.

expression
String String String String

String contenente un'espressione XPath.A String that contains an XPath expression.

resolver
IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver IXmlNamespaceResolver

IXmlNamespaceResolver per i prefissi degli spazi dei nomi nell'espressione XPath.A IXmlNamespaceResolver for the namespace prefixes in the XPath expression.

Restituisce

Oggetto contenente il risultato della valutazione dell'espressione.An object that contains the result of evaluating the expression. L'oggetto può essere bool, double, string o IEnumerable<T>.The object can be a bool, a double, a string, or an IEnumerable<T>.

Esempi

Nell'esempio seguente viene creato un albero XML che contiene uno spazio dei nomi.The following example creates an XML tree that contains a namespace. Per leggere il documento XML viene usato XmlReader.It uses an XmlReader to read the XML document. Quindi si ottiene XmlNameTable da XmlReader e XmlNamespaceManager da XmlNameTable.It then gets an XmlNameTable from the XmlReader, and an XmlNamespaceManager from the XmlNameTable. Usa l'oggetto XmlNamespaceManager quando si seleziona un 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)  

Questo esempio produce il seguente output:This example produces the following output:

aw:Att="attdata"  

Commenti

È possibile utilizzare questo metodo per valutare le espressioni XPath che contengono prefissi di spazio dei nomi.You can use this method to evaluate XPath expressions that contain namespace prefixes.

Anche se l'ordine delle raccolte restituite non è specificato nella raccomandazione XML XPath Language 1,0, questo metodo di estensione restituisce i nodi in base all'ordine dei documenti.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.

Si noti che i nodi vengono restituiti nell'ordine del documento anche quando si usa un asse inverso ancestor-or-self, ad esempio preceding-sibling o.Note that nodes are returned in document order even when you use a reverse axis, such as preceding-sibling or ancestor-or-self.

Si applica a