Filtern nach Elementnamen (LINQ to XML)
Wenn Sie eine Methode aufrufen, die eine IEnumerable<T> von XElement zurückgibt, können Sie eine Filterung nach Elementnamen vornehmen.
Beispiel: Abrufen von nach einem angegebenen Namen gefilterten Nachfolgerelementen
In diesem Beispiel wird eine Auflistung mit Nachfolgerelementen abgerufen, die gefiltert wird, damit sie nur die Nachfolgerelemente mit dem angegebenen Namen enthält.
In diesem Beispiel wird das XML-Dokument XML-Beispieldatei: Typische Bestellung verwendet.
XElement po = XElement.Load("PurchaseOrder.xml");
IEnumerable<XElement> items =
from el in po.Descendants("ProductName")
select el;
foreach(XElement prdName in items)
Console.WriteLine(prdName.Name + ":" + (string) prdName);
Dim po As XElement = XElement.Load("PurchaseOrder.xml")
Dim items As IEnumerable(Of XElement) = _
From el In po...<ProductName> _
Select el
For Each prdName As XElement In items
Console.WriteLine(prdName.Name.ToString & ":" & prdName.Value)
Next
Dieses Beispiel erzeugt die folgende Ausgabe:
ProductName:Lawnmower
ProductName:Baby Monitor
Die anderen Methoden, die eine IEnumerable<T> von XElement-Auflistungen zurückgeben, folgen dem gleichen Muster. Ihre Signaturen entsprechen denen von Elements und Descendants. Im Folgenden finden Sie eine vollständige Liste der Methoden, die gleiche Methodensignaturen besitzen:
- Ancestors
- Descendants
- Elements
- ElementsAfterSelf
- ElementsBeforeSelf
- AncestorsAndSelf
- DescendantsAndSelf
Beispiel: Abrufen aus XML-Daten in einem Namespace
Im folgenden Beispiel wird dieselbe Abfrage für XML-Daten in einem Namespace gezeigt. Weitere Informationen finden Sie unter Übersicht über Namespaces.
In diesem Beispiel wird das XML-Dokument XML-Beispieldatei: Typische Bestellung in einem Namespace verwendet.
XNamespace aw = "http://www.adventure-works.com";
XElement po = XElement.Load("PurchaseOrderInNamespace.xml");
IEnumerable<XElement> items =
from el in po.Descendants(aw + "ProductName")
select el;
foreach (XElement prdName in items)
Console.WriteLine(prdName.Name + ":" + (string)prdName);
Imports <xmlns:aw="http://www.adventure-works.com">
Module Module1
Sub Main()
Dim po As XElement = XElement.Load("PurchaseOrderInNamespace.xml")
Dim items As IEnumerable(Of XElement) = _
From el In po...<aw:ProductName> _
Select el
For Each prdName As XElement In items
Console.WriteLine(prdName.Name.ToString & ":" & prdName.Value)
Next
End Sub
End Module
Dieses Beispiel erzeugt die folgende Ausgabe:
{http://www.adventure-works.com}ProductName:Lawnmower
{http://www.adventure-works.com}ProductName:Baby Monitor
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für