Extensions.XPathEvaluate Methode

Definitie

Evalueert een XPath-expressie.

Overloads

Name Description
XPathEvaluate(XNode, String)

Evalueert een XPath-expressie.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Evalueert een XPath-expressie, waarbij naamruimtevoorvoegsels worden omgezet met behulp van de opgegeven IXmlNamespaceResolver.

Opmerkingen

Hoewel de volgorde van geretourneerde verzamelingen niet is opgegeven in de aanbeveling XML XPath Language 1.0, retourneert deze extensiemethode knooppunten in documentvolgorde.

Houd er rekening mee dat knooppunten worden geretourneerd in documentvolgorde, zelfs wanneer u een omgekeerde as gebruikt, zoals preceding-sibling of ancestor-or-self.

XPathEvaluate(XNode, String)

Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs

Evalueert een XPath-expressie.

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

Parameters

node
XNode

De XNode expressie waarop de XPath-expressie moet worden geëvalueerd.

expression
String

Een String met een XPath-expressie.

Retouren

Een object dat een bool, a double, a stringof een IEnumerable<T>.

Voorbeelden

In het volgende voorbeeld wordt een kleine XML-structuur met een kenmerk gemaakt en wordt vervolgens de XPathEvaluate methode gebruikt om het kenmerk op te halen.

                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 dit voorbeeld wordt de volgende uitvoer gegenereerd:

a="value"

Opmerkingen

Als de verzameling een opsomming is van elementen of kenmerken, kunt u de Cast operator gebruiken om een verzameling XElement van of XAttribute.

Hoewel de volgorde van geretourneerde verzamelingen niet is opgegeven in de aanbeveling XML XPath Language 1.0, retourneert deze extensiemethode knooppunten in documentvolgorde.

Houd er rekening mee dat knooppunten worden geretourneerd in documentvolgorde, zelfs wanneer u een omgekeerde as gebruikt, zoals preceding-sibling of ancestor-or-self.

Van toepassing op

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs
Bron:
XNodeNavigator.cs

Evalueert een XPath-expressie, waarbij naamruimtevoorvoegsels worden omgezet met behulp van de opgegeven 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

Parameters

node
XNode

De XNode expressie waarop de XPath-expressie moet worden geëvalueerd.

expression
String

Een String met een XPath-expressie.

resolver
IXmlNamespaceResolver

A IXmlNamespaceResolver voor de voorvoegsels van de naamruimte in de XPath-expressie.

Retouren

Een object dat het resultaat van het evalueren van de expressie bevat. Het object kan een bool, een double, een stringof een IEnumerable<T>.

Voorbeelden

In het volgende voorbeeld wordt een XML-structuur gemaakt die een naamruimte bevat. Er wordt een XmlReader gebruikt om het XML-document te lezen. Het krijgt dan een XmlNameTable van de XmlReader, en een XmlNamespaceManager van de XmlNameTable. Hierbij wordt het element gebruikt bij het XmlNamespaceManager selecteren van een 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)

In dit voorbeeld wordt de volgende uitvoer gegenereerd:

aw:Att="attdata"

Opmerkingen

U kunt deze methode gebruiken om XPath-expressies te evalueren die naamruimtevoorvoegsels bevatten.

Hoewel de volgorde van geretourneerde verzamelingen niet is opgegeven in de aanbeveling XML XPath Language 1.0, retourneert deze extensiemethode knooppunten in documentvolgorde.

Houd er rekening mee dat knooppunten worden geretourneerd in documentvolgorde, zelfs wanneer u een omgekeerde as gebruikt, zoals preceding-sibling of ancestor-or-self.

Van toepassing op