Freigeben über


Vorgehensweise: Ermitteln des Attributs des übergeordneten Elements (XPath-LINQ to XML)

In diesem Thema wird gezeigt, wie Sie zum übergeordneten Element navigieren und nach einem Attribut dieses übergeordneten Elements suchen können.

Der XPath-Ausdruck lautet:

../@id

Beispiel

Dieses Beispiel sucht zuerst nach einem Author-Element. Anschließend wird das id-Attribut des übergeordneten Elements ermittelt.

In diesem Beispiel wird das XML-Dokument in XML-Beispieldatei: Bücher ('Books') (LINQ to XML) verwendet.

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

XElement author = 
    books
    .Root
    .Element("Book")
    .Element("Author");

// LINQ to XML query
XAttribute att1 =
    author
    .Parent
    .Attribute("id");

// XPath expression
XAttribute att2 = ((IEnumerable)author.XPathEvaluate("../@id")).Cast<XAttribute>().First();

if (att1 == att2)
    Console.WriteLine("Results are identical");
else
    Console.WriteLine("Results differ");
Console.WriteLine(att1);
Dim books As XDocument = XDocument.Load("Books.xml")
Dim author As XElement = books.Root.<Book>.<Author>.FirstOrDefault()

' LINQ to XML query
Dim att1 As XAttribute = author.Parent.Attribute("id")

' XPath expression
Dim att2 As XAttribute = DirectCast(author.XPathEvaluate("../@id"),  _
    IEnumerable).Cast(Of XAttribute)().First()

If att1 Is att2 Then
    Console.WriteLine("Results are identical")
Else
    Console.WriteLine("Results differ")
End If
Console.WriteLine(att1)

Dieses Beispiel erzeugt die folgende Ausgabe:

Results are identical
id="bk101"

Siehe auch

Konzepte

LINQ to XML für XPath-Benutzer