Vorgehensweise: Suchen nach Attributen von nebengeordneten Elementen mit einem bestimmten Namen (XPath-LINQ to XML) (C#)How to: Find Attributes of Siblings with a Specific Name (XPath-LINQ to XML) (C#)

In diesem Thema wird gezeigt, wie Sie alle Attribute der nebengeordneten Knoten des Kontextknotens ermitteln können.This topic shows how to find all attributes of the siblings of the context node. In der Auflistung werden nur Attribute mit einem bestimmten Namen zurückgegeben.Only attributes with a specific name are returned in the collection.

Der XPath-Ausdruck lautet:The XPath expression is:

../Book/@id

BeispielExample

Dieses Beispiel sucht zuerst nach einem Book-Element, als Nächstes nach allen nebengeordneten Elementen mit dem Namen Book und zum Schluss nach allen Attributen mit dem Namen id.This example first finds a Book element, and then finds all sibling elements named Book, and then finds all attributes named id. Das Ergebnis ist eine Auflistung von Attributen.The result is a collection of attributes.

In diesem Beispiel wird das folgende XML-Dokument verwendet: Beispiel-XML-Datei: Bücher (LINQ to XML).This example uses the following XML document: Sample XML File: Books (LINQ to XML).

XDocument books = XDocument.Load("Books.xml");  

XElement book =   
    books  
    .Root  
    .Element("Book");  

// LINQ to XML query  
IEnumerable<XAttribute> list1 =  
    from el in book.Parent.Elements("Book")  
    select el.Attribute("id");  

// XPath expression  
IEnumerable<XAttribute> list2 =  
  ((IEnumerable)book.XPathEvaluate("../Book/@id")).Cast<XAttribute>();  

if (list1.Count() == list2.Count() &&  
        list1.Intersect(list2).Count() == list1.Count())  
    Console.WriteLine("Results are identical");  
else  
    Console.WriteLine("Results differ");  
foreach (XAttribute el in list1)  
    Console.WriteLine(el);  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

Results are identical  
id="bk101"  
id="bk102"  

Siehe auchSee Also

LINQ to XML für XPath-Benutzer (C#)LINQ to XML for XPath Users (C#)