Extensions.XPathEvaluate Méthode

Définition

Évalue une expression XPath.

Surcharges

Nom Description
XPathEvaluate(XNode, String)

Évalue une expression XPath.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Évalue une expression XPath, en résolvant les préfixes d’espace de noms à l’aide du préfixe spécifié IXmlNamespaceResolver.

Remarques

Bien que l’ordre des collections retournées ne soit pas spécifié dans la recommandation XML XPath Language 1.0, cette méthode d’extension retourne des nœuds dans l’ordre du document.

Notez que les nœuds sont retournés dans l’ordre du document même lorsque vous utilisez un axe inverse, tel que preceding-sibling ou ancestor-or-self.

XPathEvaluate(XNode, String)

Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs

Évalue une expression XPath.

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

Paramètres

node
XNode

XNode Sur lequel évaluer l’expression XPath.

expression
String

Qui String contient une expression XPath.

Retours

Objet qui peut contenir un , un booldouble, un stringou un IEnumerable<T>.

Exemples

L’exemple suivant crée une petite arborescence XML avec un attribut, puis utilise la XPathEvaluate méthode pour récupérer l’attribut.

                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())

Cet exemple produit la sortie suivante :

a="value"

Remarques

Si la collection est une énumération d’éléments ou d’attributs, vous pouvez utiliser l’opérateur Cast pour obtenir une collection de XElement ou XAttribute.

Bien que l’ordre des collections retournées ne soit pas spécifié dans la recommandation XML XPath Language 1.0, cette méthode d’extension retourne des nœuds dans l’ordre du document.

Notez que les nœuds sont retournés dans l’ordre du document même lorsque vous utilisez un axe inverse, tel que preceding-sibling ou ancestor-or-self.

S’applique à

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs
Source:
XNodeNavigator.cs

Évalue une expression XPath, en résolvant les préfixes d’espace de noms à l’aide du préfixe spécifié 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

Paramètres

node
XNode

XNode Sur lequel évaluer l’expression XPath.

expression
String

Qui String contient une expression XPath.

resolver
IXmlNamespaceResolver

Pour IXmlNamespaceResolver les préfixes d’espace de noms dans l’expression XPath.

Retours

Objet qui contient le résultat de l’évaluation de l’expression. L’objet peut être un bool, un double, un stringou un IEnumerable<T>.

Exemples

L’exemple suivant crée une arborescence XML qui contient un espace de noms. Il utilise un XmlReader pour lire le document XML. Il obtient ensuite une XmlNameTable de la XmlReader, et une XmlNamespaceManager de la XmlNameTable. Il utilise le XmlNamespaceManager moment où vous sélectionnez un élément.

                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)

Cet exemple produit la sortie suivante :

aw:Att="attdata"

Remarques

Vous pouvez utiliser cette méthode pour évaluer les expressions XPath qui contiennent des préfixes d’espace de noms.

Bien que l’ordre des collections retournées ne soit pas spécifié dans la recommandation XML XPath Language 1.0, cette méthode d’extension retourne des nœuds dans l’ordre du document.

Notez que les nœuds sont retournés dans l’ordre du document même lorsque vous utilisez un axe inverse, tel que preceding-sibling ou ancestor-or-self.

S’applique à