Vorgehensweise: Filtern nach Elementnamen (LINQ to XML) (C#)

Wenn Sie eine Methode aufrufen, die eine <xref:System.Collections.Generic.IEnumerable%601> von <xref:System.Xml.Linq.XElement> zurückgibt, können Sie eine Filterung nach Elementnamen vornehmen.

Beispiel

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 folgende XML-Dokument verwendet: Beispiel-XML-Datei: Typische Bestellung (LINQ to XML).

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

Dieser Code erzeugt die folgende Ausgabe:

ProductName:Lawnmower  
ProductName:Baby Monitor  

Die anderen Methoden, die eine <xref:System.Collections.Generic.IEnumerable%601> von <xref:System.Xml.Linq.XElement>-Auflistungen zurückgeben, folgen dem gleichen Muster. Ihre Signaturen entsprechen denen von <xref:System.Xml.Linq.XContainer.Elements%2A> und <xref:System.Xml.Linq.XContainer.Descendants%2A>. Im Folgenden finden Sie eine vollständige Liste der Methoden, die gleiche Methodensignaturen besitzen:

  • <xref:System.Xml.Linq.XNode.Ancestors%2A>

  • <xref:System.Xml.Linq.XContainer.Descendants%2A>

  • <xref:System.Xml.Linq.XContainer.Elements%2A>

  • <xref:System.Xml.Linq.XNode.ElementsAfterSelf%2A>

  • <xref:System.Xml.Linq.XNode.ElementsBeforeSelf%2A>

  • <xref:System.Xml.Linq.XElement.AncestorsAndSelf%2A>

  • <xref:System.Xml.Linq.XElement.DescendantsAndSelf%2A>

Beispiel

Im folgenden Beispiel wird dieselbe Abfrage für XML in einem Namespace gezeigt. Weitere Informationen finden Sie unter Working with XML Namespaces (C#) (Arbeiten mit XML-Namespaces (C#)).

In diesem Beispiel wird das folgende XML-Dokument verwendet: Beispiel-XML-Datei: Typische Bestellung in einem Namespace.

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

Dieser Code erzeugt die folgende Ausgabe:

{http://www.adventure-works.com}ProductName:Lawnmower  
{http://www.adventure-works.com}ProductName:Baby Monitor  

Siehe auch

LINQ to XML Axes (C#) (LINQ to XML-Achsen (C#))