Extensions.XPathEvaluate Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wertet einen XPath-Ausdruck aus.
Überlädt
| Name | Beschreibung |
|---|---|
| XPathEvaluate(XNode, String) |
Wertet einen XPath-Ausdruck aus. |
| XPathEvaluate(XNode, String, IXmlNamespaceResolver) |
Wertet einen XPath-Ausdruck aus, wobei Namespacepräfixe mithilfe des angegebenen Präfixes aufgelöst werden IXmlNamespaceResolver. |
Hinweise
Obwohl die Reihenfolge der zurückgegebenen Auflistungen in der XML XPath Language 1.0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in der Dokumentreihenfolge zurück.
Beachten Sie, dass Knoten in Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine umgekehrte Achse verwenden, z preceding-sibling . B. oder ancestor-or-self.
XPathEvaluate(XNode, String)
- Quelle:
- XNodeNavigator.cs
- Quelle:
- XNodeNavigator.cs
- Quelle:
- XNodeNavigator.cs
- Quelle:
- XNodeNavigator.cs
- Quelle:
- XNodeNavigator.cs
Wertet einen XPath-Ausdruck aus.
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
Parameter
Gibt zurück
Ein Objekt, das ein bool, a double, a stringoder ein IEnumerable<T>.
Beispiele
Im folgenden Beispiel wird eine kleine XML-Struktur mit einem Attribut erstellt. Anschließend wird die XPathEvaluate Methode zum Abrufen des Attributs verwendet.
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())
Dieses Beispiel erzeugt die folgende Ausgabe:
a="value"
Hinweise
Wenn es sich bei der Auflistung um eine Aufzählung von Elementen oder Attributen handelt, können Sie den Cast Operator verwenden, um eine Auflistung von XElement oder .XAttribute
Obwohl die Reihenfolge der zurückgegebenen Auflistungen in der XML XPath Language 1.0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in der Dokumentreihenfolge zurück.
Beachten Sie, dass Knoten in Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine umgekehrte Achse verwenden, z preceding-sibling . B. oder ancestor-or-self.
Gilt für:
XPathEvaluate(XNode, String, IXmlNamespaceResolver)
- Quelle:
- XNodeNavigator.cs
- Quelle:
- XNodeNavigator.cs
- Quelle:
- XNodeNavigator.cs
- Quelle:
- XNodeNavigator.cs
- Quelle:
- XNodeNavigator.cs
Wertet einen XPath-Ausdruck aus, wobei Namespacepräfixe mithilfe des angegebenen Präfixes aufgelöst werden 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
Parameter
- resolver
- IXmlNamespaceResolver
A IXmlNamespaceResolver für die Namespacepräfixe im XPath-Ausdruck.
Gibt zurück
Ein Objekt, das das Ergebnis der Auswertung des Ausdrucks enthält. Das Objekt kann ein bool, a double, a stringoder ein IEnumerable<T>.
Beispiele
Im folgenden Beispiel wird eine XML-Struktur erstellt, die einen Namespace enthält. Zum Lesen des XML-Dokuments wird ein XmlReader Xml-Dokument verwendet. Es wird XmlNameTable dann von der XmlReader, und eine XmlNamespaceManager von der XmlNameTable. Beim Auswählen eines Elements wird das XmlNamespaceManager Element verwendet.
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)
Dieses Beispiel erzeugt die folgende Ausgabe:
aw:Att="attdata"
Hinweise
Mit dieser Methode können Sie XPath-Ausdrücke auswerten, die Namespacepräfixe enthalten.
Obwohl die Reihenfolge der zurückgegebenen Auflistungen in der XML XPath Language 1.0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in der Dokumentreihenfolge zurück.
Beachten Sie, dass Knoten in Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine umgekehrte Achse verwenden, z preceding-sibling . B. oder ancestor-or-self.