Übersicht über die XAttribute-Klasse

Attribute sind Namenwertpaare, die einem Element zugeordnet sind. Die XAttribute-Klasse stellt XML-Attribute dar.

Das Arbeiten mit Attributen in LINQ to XML ähnelt 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 ähnlich wie ein LINQ-Abfrageausdruck für eine Auflistung von Elementen aus.

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, den Sie am häufigsten verwenden:

Konstruktor BESCHREIBUNG
XAttribute(XName name, object content) Sie erstellt ein XAttribute-Objekt. Das name-Argument gibt den Namen des Attributs an, während content den Inhalt des Attributs angibt.

Beispiel: Erstellen eines Elements mit einem Attribut

Im folgenden Beispiel wird die allgemeine Aufgabe gezeigt, ein Element zu erstellen, das ein Attribut enthält.

XElement phone = new XElement("Phone",
    new XAttribute("Type", "Home"),
    "555-555-5555");
Console.WriteLine(phone);
Dim phone As XElement = <Phone Type="Home">555-555-5555</Phone>
Console.WriteLine(phone)

Dieses Beispiel erzeugt die folgende Ausgabe:

<Phone Type="Home">555-555-5555</Phone>

Beispiel: Funktionale Konstruktion von Attributen

Sie können Objekte im Einklang mit der Konstruktion von XElement Objekten erstellenXAttribute, wie im folgenden Beispiel gezeigt:

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 erzeugt die folgende 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

Es gibt einige Unterschiede zwischen Attributen und Elementen. XAttribute Objekte sind keine Knoten in der XML-Struktur. Sie sind Namenwertpaare, die einem XML-Element zugeordnet sind. Im Unterschied zum Dokumentobjektmodell (DOM) reflektiert dies die Struktur des XML genauer. Obwohl XAttribute Objekte nicht tatsächlich Knoten in der XML-Struktur sind, ähnelt das Arbeiten mit Objekten dem Arbeiten mit XAttributeXElement Objekten.

Diese Unterscheidung ist im Wesentlichen nur für Entwickler von Bedeutung, die Code schreiben, der mit XML-Strukturen auf Knotenebene arbeitet. Viele Entwickler sind nicht mit dieser Unterscheidung beschäftigt.

Weitere Informationen