Extensions.XPathEvaluate Metoda

Definicja

Oblicza wyrażenie XPath.

Przeciążenia

XPathEvaluate(XNode, String)

Oblicza wyrażenie XPath.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Oblicza wyrażenie XPath, rozpoznawanie prefiksów przestrzeni nazw przy użyciu określonego IXmlNamespaceResolverelementu .

Uwagi

Chociaż kolejność zwracanych kolekcji nie jest określona w rekomendacji XML XPath Language 1.0, ta metoda rozszerzenia zwraca węzły w kolejności dokumentu.

Należy pamiętać, że węzły są zwracane w kolejności dokumentu nawet wtedy, gdy używasz osi odwrotnej, takiej jak preceding-sibling lub ancestor-or-self.

XPathEvaluate(XNode, String)

Źródło:
XNodeNavigator.cs
Źródło:
XNodeNavigator.cs
Źródło:
XNodeNavigator.cs

Oblicza wyrażenie XPath.

C#
public static object XPathEvaluate (this System.Xml.Linq.XNode node, string expression);

Parametry

node
XNode

Element XNode , na którym ma być obliczane wyrażenie XPath.

expression
String

Element String zawierający wyrażenie XPath.

Zwraca

Obiekt, który może zawierać boolobiekt , , double, stringlub IEnumerable<T>.

Przykłady

Poniższy przykład tworzy małe drzewo XML z atrybutem, a następnie używa XPathEvaluate metody do pobrania atrybutu.

C#
                String xml = "<root a='value'/>";  
XDocument d = XDocument.Parse(xml);  
IEnumerable att = (IEnumerable)d.XPathEvaluate("/root/@a");  
Console.WriteLine(att.Cast<XAttribute>().FirstOrDefault());  

Ten przykład generuje następujące wyniki:

a="value"  

Uwagi

Jeśli kolekcja jest wyliczeniem elementów lub atrybutów, możesz użyć Cast operatora , aby pobrać kolekcję elementów XElement lub XAttribute.

Chociaż kolejność zwracanych kolekcji nie jest określona w rekomendacji XML XPath Language 1.0, ta metoda rozszerzenia zwraca węzły w kolejności dokumentu.

Należy pamiętać, że węzły są zwracane w kolejności dokumentu nawet wtedy, gdy używasz osi odwrotnej, takiej jak preceding-sibling lub ancestor-or-self.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Źródło:
XNodeNavigator.cs
Źródło:
XNodeNavigator.cs
Źródło:
XNodeNavigator.cs

Oblicza wyrażenie XPath, rozpoznawanie prefiksów przestrzeni nazw przy użyciu określonego IXmlNamespaceResolverelementu .

C#
public static object XPathEvaluate (this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver? resolver);
C#
public static object XPathEvaluate (this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver resolver);

Parametry

node
XNode

Element XNode , na którym ma być obliczane wyrażenie XPath.

expression
String

Element String zawierający wyrażenie XPath.

resolver
IXmlNamespaceResolver

A IXmlNamespaceResolver dla prefiksów przestrzeni nazw w wyrażeniu XPath.

Zwraca

Obiekt, który zawiera wynik oceny wyrażenia. Obiekt może być obiektem bool, double, , lub stringIEnumerable<T>.

Przykłady

Poniższy przykład tworzy drzewo XML zawierające przestrzeń nazw. Używa elementu do XmlReader odczytania dokumentu XML. Następnie pobiera element XmlNameTable z elementu XmlReader, i z XmlNamespaceManager .XmlNameTable Używa elementu XmlNamespaceManager podczas wybierania elementu.

C#
                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);  

Ten przykład generuje następujące wyniki:

aw:Att="attdata"  

Uwagi

Tej metody można użyć do oceny wyrażeń XPath zawierających prefiksy przestrzeni nazw.

Chociaż kolejność zwracanych kolekcji nie jest określona w rekomendacji XML XPath Language 1.0, ta metoda rozszerzenia zwraca węzły w kolejności dokumentu.

Należy pamiętać, że węzły są zwracane w kolejności dokumentu nawet wtedy, gdy używasz osi odwrotnej, takiej jak preceding-sibling lub ancestor-or-self.

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1