Extensions.XPathEvaluate Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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
- 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.