Übersicht über die 'XAttribute'-Klasse
Aktualisiert: November 2007
Attribute sind Name/Wert-Paare, die einem Element zugeordnet sind. Die XAttribute-Klasse stellt XML-Attribute dar.
Übersicht
Das Arbeiten mit Attributen in LINQ to XML ist vergleichbar mit dem Arbeiten mit Elementen. Ihre Konstruktoren ähneln sich, und auch die Methoden zum Aufrufen von Auflistungen sind ähnlich. Ein LINQ-Abfrageausdruck für eine Auflistung von Attributen sieht einem LINQ-Abfrageausdruck für eine Auflistung von Elementen sehr ähnlich.
Die Reihenfolge, in der einem Element Attribute hinzugefügt wurden, wird beibehalten. Das heißt, wenn Sie die Attribute durchlaufen, sehen Sie die Attribute genau in der Reihenfolge, in der sie hinzugefügt wurden.
Der "XAttribute"-Konstruktor
Der folgende Konstruktor der XAttribute-Klasse ist der Konstruktor, den Sie am häufigsten verwenden werden:
Konstruktor |
Beschreibung |
---|---|
XAttribute(XName name, object content) |
Erstellt ein XAttribute-Objekt. Das name-Argument gibt den Namen des Attributs an, während content den Inhalt des Attributs angibt. |
Erstellen eines Elements mit einem Attribut
Der folgende Code zeigt die häufige Aufgabe des Erstellens eines Elements mit einem Attribut:
XElement phone = new XElement("Phone",
new XAttribute("Type", "Home"),
"555-555-5555");
Console.WriteLine(phone);
In Visual Basic können Sie XML-Literale verwenden:
Dim phone As XElement = <Phone Type="Home">555-555-5555</Phone>
Console.WriteLine(phone)
Dieses Beispiel führt zur folgenden Ausgabe:
<Phone Type="Home">555-555-5555</Phone>
Funktionale Konstruktion von Attributen
Mit der Konstruktion von XElement-Objekten können Sie XAttribute-Objekte "inline" erstellen, wie das folgende Beispiel zeigt:
XElement c = new XElement("Customers",
new XElement("Customer",
new XElement("Name", "John Doe"),
new XElement("PhoneNumbers",
new XElement("Phone",
new XAttribute("type", "home"),
"555-555-5555"),
new XElement("Phone",
new XAttribute("type", "work"),
"666-666-6666")
)
)
);
Console.WriteLine(c);
Dim c As XElement = _
<Customers>
<Customer>
<Name>John Doe</Name>
<PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">666-666-6666</Phone>
</PhoneNumbers>
</Customer>
</Customers>
Console.WriteLine(c)
Dieses Beispiel führt zur folgenden Ausgabe:
<Customers>
<Customer>
<Name>John Doe</Name>
<PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">666-666-6666</Phone>
</PhoneNumbers>
</Customer>
</Customers>
Attribute sind keine Knoten
Zwischen Attributen und Elementen gibt es einige Unterschiede. XAttribute-Objekte sind keine Knoten in der XML-Struktur. Sie sind Name/Wert-Paare, die einem XML-Element zugeordnet sind. Im Unterschied zum Dokumentobjektmodell (DOM) reflektiert dies die Struktur des XML genauer. Auch wenn XAttribute-Objekte keine Knoten in der XML-Struktur im eigentlichen Sinne sind, ist das Arbeiten mit XAttribute-Objekten vergleichbar mit dem Arbeiten mit XElement-Objekten.
Diese Unterscheidung ist im Wesentlichen nur für Entwickler von Bedeutung, die Code schreiben, der mit XML-Strukturen auf Knotenebene arbeitet. Für die meisten Entwickler dürfte dieser Unterschied ohne praktische Bedeutung sein.