Übersicht über die XDocument-Klasse (C#)XDocument Class Overview (C#)

Dieses Thema enthält eine Einführung in die XDocument-Klasse.This topic introduces the XDocument class.

AllgemeinesOverview of the XDocument class

Die XDocument-Klasse enthält die für ein gültiges XML-Dokument erforderlichen Informationen.The XDocument class contains the information necessary for a valid XML document. Dazu gehören eine XML-Deklaration, Verarbeitungsanweisungen und Kommentare.This includes an XML declaration, processing instructions, and comments.

Beachten Sie, dass Sie XDocument-Objekte nur erstellen müssen, wenn Sie die spezifische Funktionalität benötigen, die von der XDocument-Klasse bereitgestellt wird.Note that you only have to create XDocument objects if you require the specific functionality provided by the XDocument class. In vielen Fällen können Sie direkt mit XElement arbeiten.In many circumstances, you can work directly with XElement. Das direkte Arbeiten mit XElement ist ein einfacheres Programmiermodell.Working directly with XElement is a simpler programming model.

XDocument wird von XContainer abgeleitet.XDocument derives from XContainer. Deshalb kann es untergeordnete Knoten enthalten.Therefore, it can contain child nodes. XDocument-Objekte können aber nur einen untergeordneten XElement-Knoten besitzen.However, XDocument objects can have only one child XElement node. Dies spiegelt den XML-Standard wider, demzufolge in einem XML-Dokument nur ein Stammelement vorhanden sein darf.This reflects the XML standard that there can be only one root element in an XML document.

Komponenten von "XDocument"Components of XDocument

Ein XDocument kann die folgenden Elemente enthalten:An XDocument can contain the following elements:

  • genau ein XDeclaration-Objekt:One XDeclaration object. Mit XDeclaration können Sie die wichtigen Teile einer XML-Deklaration angeben: die XML-Version, die Codierung des Dokuments und die Angabe, ob das XML-Dokument eigenständig ist.XDeclaration enables you to specify the pertinent parts of an XML declaration: the XML version, the encoding of the document, and whether the XML document is stand-alone.

  • genau ein XElement-Objekt:One XElement object. Dies ist der Stammknoten des XML-Dokuments.This is the root node of the XML document.

  • eine beliebige Anzahl von XProcessingInstruction-Objekten:Any number of XProcessingInstruction objects. Eine Verarbeitungsanweisung stellt der Anwendung, die das XML-Dokument verarbeitet, entsprechende Informationen zur Verarbeitung bereit.A processing instruction communicates information to an application that processes the XML.

  • eine beliebige Anzahl von XComment-Objekten:Any number of XComment objects. Die Kommentare sind dem Stammelement nebengeordnet.The comments will be siblings to the root element. Das XComment-Objekt kann nicht das erste Argument in der Liste sein, da ein XML-Dokument nicht mit einem Kommentar beginnen darf.The XComment object cannot be the first argument in the list, because it is not valid for an XML document to start with a comment.

  • genau ein XDocumentType für die DTDOne XDocumentType for the DTD.

Beim Serialisieren eines XDocument-Objekts enthält die Ausgabe eine XML-Deklaration. Dies gilt auch dann, wenn XDocument.Declaration auf null gesetzt ist, solange der Writer für Writer.Settings.OmitXmlDeclaration den Standardwert false festgelegt hat.When you serialize an XDocument, even if XDocument.Declaration is null, the output will have an XML declaration if the writer has Writer.Settings.OmitXmlDeclaration set to false (the default).

Standardmäßig legt LINQ to XMLLINQ to XML die Version auf "1.0" und die Codierung auf "utf-8" fest.By default, LINQ to XMLLINQ to XML sets the version to "1.0", and sets the encoding to "utf-8".

Verwenden von "XElement" ohne "XDocument"Using XElement without XDocument

Wie bereits erwähnt, ist die XElement-Klasse die Hauptklasse in der LINQ to XMLLINQ to XML-Programmierschnittstelle.As previously mentioned, the XElement class is the main class in the LINQ to XMLLINQ to XML programming interface. In vielen Fällen wird es für Ihre Anwendung nicht notwendig sein, ein Dokument zu erstellen.In many cases, your application will not require that you create a document. Dank der XElement-Klasse können Sie eine XML-Struktur erstellen, dieser Struktur andere XML-Strukturen hinzufügen, die XML-Struktur ändern und die XML-Struktur speichern.By using the XElement class, you can create an XML tree, add other XML trees to it, modify the XML tree, and save it.

Verwenden von "XDocument"Using XDocument

Zum Konstruieren eines XDocument können Sie genauso die funktionale Konstruktion verwenden wie zum Konstruieren von XElement-Objekten.To construct an XDocument, use functional construction, just like you do to construct XElement objects.

Der folgende Code erstellt ein XDocument-Objekt und die zugehörigen in ihm enthaltenen Objekte.The following code creates an XDocument object and its associated contained objects.

XDocument d = new XDocument(  
    new XComment("This is a comment."),  
    new XProcessingInstruction("xml-stylesheet",  
        "href='mystyle.css' title='Compact' type='text/css'"),  
    new XElement("Pubs",  
        new XElement("Book",  
            new XElement("Title", "Artifacts of Roman Civilization"),  
            new XElement("Author", "Moreno, Jordao")  
        ),  
        new XElement("Book",  
            new XElement("Title", "Midieval Tools and Implements"),  
            new XElement("Author", "Gazit, Inbar")  
        )  
    ),  
    new XComment("This is another comment.")  
);  
d.Declaration = new XDeclaration("1.0", "utf-8", "true");  
Console.WriteLine(d);  

d.Save("test.xml");  

Wenn Sie sich die Datei test.xml ansehen, erhalten Sie die folgende Ausgabe:When you examine the file test.xml, you get the following output:

<?xml version="1.0" encoding="utf-8"?>  
<!--This is a comment.-->  
<?xml-stylesheet href='mystyle.css' title='Compact' type='text/css'?>  
<Pubs>  
  <Book>  
    <Title>Artifacts of Roman Civilization</Title>  
    <Author>Moreno, Jordao</Author>  
  </Book>  
  <Book>  
    <Title>Midieval Tools and Implements</Title>  
    <Author>Gazit, Inbar</Author>  
  </Book>  
</Pubs>  
<!--This is another comment.-->  

Siehe auchSee Also

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