Vorgehensweise: Abrufen des Werts eines Attributs (LINQ to XML)

In diesem Thema wird gezeigt, wie Sie den Wert von Attributen abrufen können.Im Wesentlichen gibt es dafür zwei Möglichkeiten: Sie können ein XAttribute in den gewünschten Typ umwandeln. Die Umwandlung des Inhalts des Elements oder Attributs in den angegebenen Typ erfolgt dann durch den expliziten Konvertierungsoperator.Die andere Möglichkeit besteht darin, die Value-Eigenschaft zu verwenden.In der Regel empfiehlt sich aber die Verwendung des Umwandlungsverfahrens.Wenn Sie das Attribut in einen Typ umwandeln, der NULL-Werte zulässt, ist der Code für das Abrufen des Werts eines Attributs, von dem nicht genau bekannt ist, ob es überhaupt vorhanden ist, einfacher zu schreiben.Beispiele für diese Vorgehensweise finden Sie unter Vorgehensweise: Abrufen des Werts eines Elements (LINQ to XML).

Beispiel

Zum Abrufen des Werts eines Attributs wandeln Sie einfach nur das XAttribute-Objekt in den gewünschten Typ um.

In Visual Basic können Sie zum Abrufen des Werts eines Attributs die integrierte Attributeigenschaft verwenden.

XElement root = new XElement("Root",
                    new XAttribute("Attr", "abcde")
                );
Console.WriteLine(root);
string str = (string)root.Attribute("Attr");
Console.WriteLine(str);
Dim root As XElement = <Root Attr="abcde"/>
Console.WriteLine(root)
Dim str As String = root.@Attr
Console.WriteLine(str)

Dieses Beispiel führt zur folgenden Ausgabe:

<Root Attr="abcde" />
abcde

In Visual Basic können Sie zum Festlegen des Werts eines Attributs die integrierte Attributeigenschaft verwenden.Wenn Sie die integrierte Attributeigenschaft verwenden und den Wert eines Attributs festlegen, das nicht existiert, wird dieses Attribut erstellt.

Dim root As XElement = <Root Att1="content"/>
root.@Att1 = "new content"
root.@Att2 = "new attribute"
Console.WriteLine(root)

Dieses Beispiel führt zur folgenden Ausgabe:

<Root Att1="new content" Att2="new attribute" />

Im folgenden Beispiel wird gezeigt, wie Sie den Wert eines Attributs für den Fall abrufen können, dass sich das Attribut in einem Namespace befindet.Weitere Informationen dazu finden Sie unter Arbeiten mit XML-Namespaces.

XNamespace aw = "https://www.adventure-works.com";
XElement root = new XElement(aw + "Root",
                    new XAttribute(aw + "Attr", "abcde")
                );
string str = (string)root.Attribute(aw + "Attr");
Console.WriteLine(str);
Imports <xmlns:aw="https://www.adventure-works.com">

Module Module1
    Sub Main()
        Dim root As XElement = <aw:Root aw:Attr="abcde"/>
        Dim str As String = root.@aw:Attr
        Console.WriteLine(str)
    End Sub
End Module

Mit diesem Beispiel wird die folgende Ausgabe erzeugt:

abcde

Siehe auch

Konzepte

LINQ to XML-Achsen