Übersicht der XAttribute-Klasse (C#)XAttribute Class Overview (C#)

Attribute sind Name/Wert-Paare, die einem Element zugeordnet sind.Attributes are name/value pairs that are associated with an element. Die XAttribute-Klasse stellt XML-Attribute dar.The XAttribute class represents XML attributes.

ÜbersichtOverview

Das Arbeiten mit Attributen in LINQ to XML ist vergleichbar mit dem Arbeiten mit Elementen.Working with attributes in LINQ to XML is similar to working with elements. Ihre Konstruktoren ähneln sich,Their constructors are similar. und auch die Methoden zum Aufrufen von Auflistungen sind ähnlich.The methods that you use to retrieve collections of them are similar. Ein LINQLINQ-Abfrageausdruck für eine Auflistung von Attributen sieht einem LINQLINQ-Abfrageausdruck für eine Auflistung von Elementen sehr ähnlich.A LINQLINQ query expression for a collection of attributes looks very similar to a LINQLINQ query expression for a collection of elements.

Die Reihenfolge, in der einem Element Attribute hinzugefügt wurden, wird beibehalten.The order in which attributes were added to an element is preserved. Das heißt, wenn Sie die Attribute durchlaufen, sehen Sie die Attribute genau in der Reihenfolge, in der sie hinzugefügt wurden.That is, when you iterate through the attributes, you see them in the same order that they were added.

Der "XAttribute"-KonstruktorThe XAttribute Constructor

Der folgende Konstruktor der XAttribute-Klasse ist der Konstruktor, den Sie am häufigsten verwenden werden:The following constructor of the XAttribute class is the one that you will most commonly use:

KonstruktorConstructor BeschreibungDescription
XAttribute(XName name, object content) Sie erstellt ein XAttribute-Objekt.Creates an XAttribute object. Das name-Argument gibt den Namen des Attributs an, während content den Inhalt des Attributs angibt.The name argument specifies the name of the attribute; content specifies the content of the attribute.

Erstellen eines Elements mit einem AttributCreating an Element with an Attribute

Der folgende Code zeigt die häufige Aufgabe des Erstellens eines Elements mit einem Attribut:The following code shows the common task of creating an element that contains an attribute:

XElement phone = new XElement("Phone",  
    new XAttribute("Type", "Home"),  
    "555-555-5555");  
Console.WriteLine(phone);  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

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

Funktionale Konstruktion von AttributenFunctional Construction of Attributes

Mit der Konstruktion von XAttribute-Objekten können Sie XElement-Objekte "inline" erstellen, wie das folgende Beispiel zeigt:You can construct XAttribute objects in-line with the construction of XElement objects, as follows:

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);  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

<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 KnotenAttributes Are Not Nodes

Es gibt einige Unterschiede zwischen Attributen und Elementen.There are some differences between attributes and elements. XAttribute-Objekte sind keine Knoten in der XML-Struktur.XAttribute objects are not nodes in the XML tree. Sie sind Name/Wert-Paare, die einem XML-Element zugeordnet sind.They are name/value pairs associated with an XML element. Im Unterschied zum Dokumentobjektmodell (DOM) reflektiert dies die Struktur des XML genauer.In contrast to the Document Object Model (DOM), this more closely reflects the structure of XML. 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.Although XAttribute objects are not actually nodes in the XML tree, working with XAttribute objects is very similar to working with XElement objects.

Diese Unterscheidung ist im Wesentlichen nur für Entwickler von Bedeutung, die Code schreiben, der mit XML-Strukturen auf Knotenebene arbeitet.This distinction is primarily important only to developers who are writing code that works with XML trees at the node level. Für die meisten Entwickler dürfte dieser Unterschied ohne praktische Bedeutung sein.Many developers will not be concerned with this distinction.

Siehe auchSee Also

LINQ to XML Programming Overview (C#) (Übersicht der LINQ to XML-Programmierung (C#))LINQ to XML Programming Overview (C#)