Sdílet prostřednictvím


Ü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.

Siehe auch

Konzepte

Übersicht über die LINQ to XML-Programmierung