Extensions.XPathEvaluate Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Utvärderar ett XPath-uttryck.
Överlagringar
| Name | Description |
|---|---|
| XPathEvaluate(XNode, String) |
Utvärderar ett XPath-uttryck. |
| XPathEvaluate(XNode, String, IXmlNamespaceResolver) |
Utvärderar ett XPath-uttryck och löser namnområdesprefix med hjälp av den angivna IXmlNamespaceResolver. |
Kommentarer
Även om ordningen på returnerade samlingar inte anges i XML XPath Language 1.0-rekommendationen returnerar den här tilläggsmetoden noder i dokumentordning.
Observera att noder returneras i dokumentordning även när du använder en omvänd axel, till exempel preceding-sibling eller ancestor-or-self.
XPathEvaluate(XNode, String)
- Källa:
- XNodeNavigator.cs
- Källa:
- XNodeNavigator.cs
- Källa:
- XNodeNavigator.cs
- Källa:
- XNodeNavigator.cs
- Källa:
- XNodeNavigator.cs
Utvärderar ett XPath-uttryck.
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
Parametrar
Returer
Ett objekt som kan innehålla , boolen double, en stringeller en IEnumerable<T>.
Exempel
I följande exempel skapas ett litet XML-träd med ett attribut och metoden används XPathEvaluate sedan för att hämta attributet.
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())
Det här exemplet genererar följande utdata:
a="value"
Kommentarer
Om samlingen är en uppräkning av element eller attribut kan du använda operatorn Cast för att hämta en samling med XElement eller XAttribute.
Även om ordningen på returnerade samlingar inte anges i XML XPath Language 1.0-rekommendationen returnerar den här tilläggsmetoden noder i dokumentordning.
Observera att noder returneras i dokumentordning även när du använder en omvänd axel, till exempel preceding-sibling eller ancestor-or-self.
Gäller för
XPathEvaluate(XNode, String, IXmlNamespaceResolver)
- Källa:
- XNodeNavigator.cs
- Källa:
- XNodeNavigator.cs
- Källa:
- XNodeNavigator.cs
- Källa:
- XNodeNavigator.cs
- Källa:
- XNodeNavigator.cs
Utvärderar ett XPath-uttryck och löser namnområdesprefix med hjälp av den angivna 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
Parametrar
- resolver
- IXmlNamespaceResolver
A IXmlNamespaceResolver för namnområdesprefixen i XPath-uttrycket.
Returer
Ett objekt som innehåller resultatet av utvärderingen av uttrycket. Objektet kan vara en bool, en double, en stringeller en IEnumerable<T>.
Exempel
I följande exempel skapas ett XML-träd som innehåller ett namnområde. Den använder en XmlReader för att läsa XML-dokumentet. Den får sedan en XmlNameTable från XmlReader, och en XmlNamespaceManager från XmlNameTable. Den använder XmlNamespaceManager när du väljer ett 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)
Det här exemplet genererar följande utdata:
aw:Att="attdata"
Kommentarer
Du kan använda den här metoden för att utvärdera XPath-uttryck som innehåller namnområdesprefix.
Även om ordningen på returnerade samlingar inte anges i XML XPath Language 1.0-rekommendationen returnerar den här tilläggsmetoden noder i dokumentordning.
Observera att noder returneras i dokumentordning även när du använder en omvänd axel, till exempel preceding-sibling eller ancestor-or-self.