Extensions.XPathEvaluate Metodo

Definizione

Valuta un'espressione XPath.

Overload

Nome Descrizione
XPathEvaluate(XNode, String)

Valuta un'espressione XPath.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Valuta un'espressione XPath, risolvendo i prefissi dello spazio dei nomi usando l'oggetto specificato IXmlNamespaceResolver.

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
Origine:
XNodeNavigator.cs
Origine:
XNodeNavigator.cs

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

Parametri

node
XNode

Oggetto XNode in cui valutare l'espressione XPath.

expression
String

Oggetto String contenente un'espressione XPath.

Valori restituiti

Oggetto che può contenere un boologgetto , un doubleoggetto , un stringoggetto o un oggetto 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());
                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())

In questo esempio viene generato l'output seguente:

a="value"

Commenti

Se la raccolta è un'enumerazione di elementi o attributi, è possibile utilizzare 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

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

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

Valuta un'espressione XPath, risolvendo i prefissi dello spazio dei nomi usando l'oggetto specificato 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

Parametri

node
XNode

Oggetto XNode in cui valutare l'espressione XPath.

expression
String

Oggetto String contenente un'espressione XPath.

resolver
IXmlNamespaceResolver

Oggetto IXmlNamespaceResolver per i prefissi dello spazio dei nomi nell'espressione XPath.

Valori restituiti

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

Esempio

Nell'esempio seguente viene creato un albero XML contenente uno spazio dei nomi. Usa un oggetto XmlReader per leggere il documento XML. Ottiene quindi un XmlNameTable oggetto da XmlReadere da XmlNamespaceManagerXmlNameTable. 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);
                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)

In questo esempio viene generato l'output seguente:

aw:Att="attdata"

Commenti

È possibile usare 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