Aracılığıyla paylaş


Extensions.XPathEvaluate Yöntem

Tanım

XPath ifadesini değerlendirir.

Aşırı Yüklemeler

XPathEvaluate(XNode, String)

XPath ifadesini değerlendirir.

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Belirtilen IXmlNamespaceResolverkullanarak ad alanı ön eklerini çözerek bir XPath ifadesini değerlendirir.

Açıklamalar

Döndürülen koleksiyonların sıralaması XML XPath Dil 1.0 Önerisi'nde belirtilmemiş olsa da, bu uzantı yöntemi belge sırasına göre düğümleri döndürür.

veya ancestor-or-selfgibi preceding-sibling bir ters eksen kullandığınızda bile düğümlerin belge sırasına göre döndürüldüğünü unutmayın.

XPathEvaluate(XNode, String)

XPath ifadesini değerlendirir.

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

Parametreler

node
XNode

XNode XPath ifadesinin değerlendirildiği yer.

expression
String

String XPath ifadesi içeren bir.

Döndürülenler

Object

, doubleveya içerebilen boolbir stringIEnumerable<T>nesne.

Örnekler

Aşağıdaki örnek, özniteliğine sahip küçük bir XML ağacı oluşturur ve özniteliğini almak için yöntemini kullanır XPathEvaluate .

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

Bu örnek aşağıdaki çıkışı oluşturur:

a="value"  

Açıklamalar

Koleksiyon öğelerin veya özniteliklerin bir numaralandırmasıysa, veya XAttributekoleksiyonunu XElement almak için işlecini kullanabilirsinizCast.

Döndürülen koleksiyonların sıralaması XML XPath Dil 1.0 Önerisi'nde belirtilmemiş olsa da, bu uzantı yöntemi belge sırasına göre düğümleri döndürür.

veya ancestor-or-selfgibi preceding-sibling bir ters eksen kullandığınızda bile düğümlerin belge sırasına göre döndürüldüğünü unutmayın.

Şunlara uygulanır

XPathEvaluate(XNode, String, IXmlNamespaceResolver)

Belirtilen IXmlNamespaceResolverkullanarak ad alanı ön eklerini çözerek bir XPath ifadesini değerlendirir.

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

Parametreler

node
XNode

XNode XPath ifadesinin değerlendirildiği yer.

expression
String

String XPath ifadesi içeren bir.

resolver
IXmlNamespaceResolver

XPath ifadesindeki ad alanı ön ekleri için A IXmlNamespaceResolver .

Döndürülenler

Object

İfadenin değerlendirilmesinin sonucunu içeren bir nesne. Nesnesi , booldoublestringveya IEnumerable<T>olabilir.

Örnekler

Aşağıdaki örnek, ad alanı içeren bir XML ağacı oluşturur. XML belgesini okumak için bir XmlReader kullanır. Ardından , ve 'den XmlReaderXmlNameTablebir XmlNamespaceManager alırXmlNameTable. Bir öğeyi seçerken öğesini XmlNamespaceManager kullanır.

                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)  

Bu örnek aşağıdaki çıkışı oluşturur:

aw:Att="attdata"  

Açıklamalar

Ad alanı ön ekleri içeren XPath ifadelerini değerlendirmek için bu yöntemi kullanabilirsiniz.

Döndürülen koleksiyonların sıralaması XML XPath Dil 1.0 Önerisi'nde belirtilmemiş olsa da, bu uzantı yöntemi belge sırasına göre düğümleri döndürür.

veya ancestor-or-selfgibi preceding-sibling bir ters eksen kullandığınızda bile düğümlerin belge sırasına göre döndürüldüğünü unutmayın.

Şunlara uygulanır