Extensions.XPathEvaluate Metodo

Definizione

Valuta un'espressione XPath.

Overload

XPathEvaluate(XNode, String)

Valuta un'espressione XPath.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Valuta un'espressione XPath risolvendo i prefissi degli spazi dei nomi utilizzando l'oggetto IXmlNamespaceResolver specificato.

Commenti

Anche se l'ordinamento delle raccolte restituite non è specificato nella raccomandazione XML XPath Language 1.0, questo metodo di estensione restituisce i nodi nell'ordine dei documenti.

Si noti che i nodi vengono restituiti nell'ordine dei documenti anche quando si usa un asse inverso, ad esempio preceding-sibling o ancestor-or-self.

XPathEvaluate(XNode, String)

Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs

Valuta un'espressione XPath.

public static object XPathEvaluate (this System.Xml.Linq.XNode node, string expression);

Parametri

node
XNode

XNode sul quale valutare l'espressione XPath.

expression
String

String contenente un'espressione XPath.

Restituisce

Oggetto che può contenere bool, double, string o IEnumerable<T>.

Esempio

Nell'esempio seguente viene creato un piccolo albero XML con un attributo , quindi viene utilizzato il XPathEvaluate metodo per recuperare l'attributo .

                String xml = "<root a='value'/>";  
XDocument d = XDocument.Parse(xml);  
IEnumerable att = (IEnumerable)d.XPathEvaluate("/root/@a");  
Console.WriteLine(att.Cast<XAttribute>().FirstOrDefault());  

Nell'esempio viene prodotto l'output seguente:

a="value"  

Commenti

Se la raccolta è un'enumerazione di elementi o attributi, è possibile usare l'operatore Cast per ottenere una raccolta di XElement o XAttribute.

Anche se l'ordinamento delle raccolte restituite non è specificato nella raccomandazione XML XPath Language 1.0, questo metodo di estensione restituisce i nodi nell'ordine dei documenti.

Si noti che i nodi vengono restituiti nell'ordine dei documenti anche quando si usa un asse inverso, ad esempio preceding-sibling o ancestor-or-self.

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs

Valuta un'espressione XPath risolvendo i prefissi degli spazi dei nomi utilizzando l'oggetto IXmlNamespaceResolver specificato.

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

Parametri

node
XNode

XNode sul quale valutare l'espressione XPath.

expression
String

String contenente un'espressione XPath.

resolver
IXmlNamespaceResolver

IXmlNamespaceResolver per i prefissi degli spazi dei nomi nell'espressione XPath.

Restituisce

Oggetto contenente il risultato della valutazione dell'espressione. L'oggetto può essere bool, double, string o IEnumerable<T>.

Esempio

Nell'esempio seguente viene creata una struttura ad albero XML contenente uno spazio dei nomi . Per leggere il documento XML viene usato XmlReader. Quindi si ottiene XmlNameTable da XmlReader e XmlNamespaceManager da XmlNameTable. Usa quando XmlNamespaceManager si seleziona 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);  

Nell'esempio viene prodotto l'output seguente:

aw:Att="attdata"  

Commenti

È possibile utilizzare questo metodo per valutare le espressioni XPath contenenti prefissi dello spazio dei nomi.

Anche se l'ordinamento delle raccolte restituite non è specificato nella raccomandazione XML XPath Language 1.0, questo metodo di estensione restituisce i nodi nell'ordine dei documenti.

Si noti che i nodi vengono restituiti nell'ordine dei documenti anche quando si usa un asse inverso, ad esempio preceding-sibling o ancestor-or-self.

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1