Extensions.XPathSelectElements Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus.
Überlädt
XPathSelectElements(XNode, String) |
Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus. |
XPathSelectElements(XNode, String, IXmlNamespaceResolver) |
Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus und löst Namespacepräfixe mit dem angegebenen IXmlNamespaceResolver auf. |
Hinweise
Obwohl die Sortierung zurückgegebener Auflistungen in der XML XPath Language 1.0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in der Dokumentreihenfolge zurück.
Beachten Sie, dass Knoten in der Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine Umgekehrtachse verwenden, z preceding-sibling
. B. oder ancestor-or-self
.
XPathSelectElements(XNode, String)
Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus.
public:
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ XPathSelectElements(System::Xml::Linq::XNode ^ node, System::String ^ expression);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements (this System.Xml.Linq.XNode node, string expression);
static member XPathSelectElements : System.Xml.Linq.XNode * string -> seq<System.Xml.Linq.XElement>
<Extension()>
Public Function XPathSelectElements (node As XNode, expression As String) As IEnumerable(Of XElement)
Parameter
Gibt zurück
Ein IEnumerable<T> vom Typ XElement, die die ausgewählten Elemente enthält.
Beispiele
Das folgende Beispiel erstellt eine kleine XML-Struktur und verwendet zum Auswählen eines Satzes von Elementen XPathSelectElements.
XElement root = new XElement("Root",
new XElement("Child1", 1),
new XElement("Child1", 2),
new XElement("Child1", 3),
new XElement("Child2", 4),
new XElement("Child2", 5),
new XElement("Child2", 6)
);
IEnumerable<XElement> list = root.XPathSelectElements("./Child2");
foreach (XElement el in list)
Console.WriteLine(el);
Dim root As XElement = _
<Root>
<Child1>1</Child1>
<Child1>2</Child1>
<Child1>3</Child1>
<Child2>4</Child2>
<Child2>5</Child2>
<Child2>6</Child2>
</Root>
Dim list As IEnumerable(Of XElement) = root.XPathSelectElements("./Child2")
For Each el As XElement In list
Console.WriteLine(el)
Next
Dieses Beispiel erzeugt die folgende Ausgabe:
<Child2>4</Child2>
<Child2>5</Child2>
<Child2>6</Child2>
Hinweise
Obwohl die Sortierung zurückgegebener Auflistungen in der XML XPath Language 1.0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in der Dokumentreihenfolge zurück.
Beachten Sie, dass Knoten in der Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine Umgekehrtachse verwenden, z preceding-sibling
. B. oder ancestor-or-self
.
Gilt für
XPathSelectElements(XNode, String, IXmlNamespaceResolver)
Wählt mithilfe eines XPath-Ausdrucks eine Auflistung von Elementen aus und löst Namespacepräfixe mit dem angegebenen IXmlNamespaceResolver auf.
public:
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<System::Xml::Linq::XElement ^> ^ XPathSelectElements(System::Xml::Linq::XNode ^ node, System::String ^ expression, System::Xml::IXmlNamespaceResolver ^ resolver);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements (this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver? resolver);
public static System.Collections.Generic.IEnumerable<System.Xml.Linq.XElement> XPathSelectElements (this System.Xml.Linq.XNode node, string expression, System.Xml.IXmlNamespaceResolver resolver);
static member XPathSelectElements : System.Xml.Linq.XNode * string * System.Xml.IXmlNamespaceResolver -> seq<System.Xml.Linq.XElement>
<Extension()>
Public Function XPathSelectElements (node As XNode, expression As String, resolver As IXmlNamespaceResolver) As IEnumerable(Of XElement)
Parameter
- resolver
- IXmlNamespaceResolver
Ein IXmlNamespaceResolver für die Namespacepräfixe im XPath-Ausdruck.
Gibt zurück
Ein IEnumerable<T> vom Typ XElement, die die ausgewählten Elemente enthält.
Beispiele
In diesem Beispiel wird eine XML-Struktur erstellt, die einen Namespace enthält. Zum Lesen des XML-Dokuments kommt dabei ein XmlReader zum Einsatz. Anschließend werden eine XmlNameTable aus dem XmlReader und ein XmlNamespaceManager aus der XmlNameTable abgerufen. Beim Auswählen der Liste der Elemente wird die XmlNamespaceManager Liste der Elemente verwendet.
string markup = @"
<aw:Root xmlns:aw='http://www.adventure-works.com'>
<aw:Child1>child one data 1</aw:Child1>
<aw:Child1>child one data 2</aw:Child1>
<aw:Child1>child one data 3</aw:Child1>
<aw:Child2>child two data 4</aw:Child2>
<aw:Child2>child two data 5</aw:Child2>
<aw:Child2>child two data 6</aw:Child2>
</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<XElement> elements = root.XPathSelectElements("./aw:Child1", namespaceManager);
foreach (XElement el in elements)
Console.WriteLine(el);
Dim markup As XElement = _
<aw:Root xmlns:aw="http://www.adventure-works.com">
<aw:Child1>child one data 1</aw:Child1>
<aw:Child1>child one data 2</aw:Child1>
<aw:Child1>child one data 3</aw:Child1>
<aw:Child2>child two data 4</aw:Child2>
<aw:Child2>child two data 5</aw:Child2>
<aw:Child2>child two data 6</aw:Child2>
</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 elements As IEnumerable(Of XElement) = markup.XPathSelectElements("./aw:Child1", namespaceManager)
For Each el As XElement In elements
Console.WriteLine(el)
Next
Dieses Beispiel erzeugt die folgende Ausgabe:
<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 1</aw:Child1>
<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 2</aw:Child1>
<aw:Child1 xmlns:aw="http://www.adventure-works.com">child one data 3</aw:Child1>
Hinweise
Sie können diese Methode verwenden, um XPath-Ausdrücke auszuwerten, die Namespacepräfixe enthalten.
Obwohl die Sortierung zurückgegebener Auflistungen in der XML XPath Language 1.0-Empfehlung nicht angegeben ist, gibt diese Erweiterungsmethode Knoten in der Dokumentreihenfolge zurück.
Beachten Sie, dass Knoten in der Dokumentreihenfolge zurückgegeben werden, auch wenn Sie eine Umgekehrtachse verwenden, z preceding-sibling
. B. oder ancestor-or-self
.