Extensions.XPathEvaluate Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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-self
gibi 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
Döndürülenler
, double
veya içerebilen bool
bir string
IEnumerable<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-self
gibi 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
- resolver
- IXmlNamespaceResolver
XPath ifadesindeki ad alanı ön ekleri için A IXmlNamespaceResolver .
Döndürülenler
İfadenin değerlendirilmesinin sonucunu içeren bir nesne. Nesnesi , bool
double
string
veya 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-self
gibi preceding-sibling
bir ters eksen kullandığınızda bile düğümlerin belge sırasına göre döndürüldüğünü unutmayın.