Gültiger Inhalt von XElement- und XDocument-ObjektenValid Content of XElement and XDocument Objects

In diesem Thema werden die gültigen Argumente beschrieben, die an die Konstruktoren und Methoden übergeben werden können, die Sie zum Hinzufügen von Inhalt zu Elementen und Dokumenten verwenden.This topic describes the valid arguments that can be passed to constructors and methods that you use to add content to elements and documents.

Gültiger InhaltValid Content

Abfragen ergeben häufig IEnumerable<T> für XElement oder IEnumerable<T> für XAttribute.Queries often evaluate to IEnumerable<T> of XElement or IEnumerable<T> of XAttribute. Sie können Auflistungen mit XElement- oder XAttribute-Objekten an den XElement-Konstruktor übergeben.You can pass collections of XElement or XAttribute objects to the XElement constructor. Aus diesem Grund bietet es sich an, die Ergebnisse einer Abfrage als Inhalt an Methoden und Konstruktoren zu übergeben, mit denen Sie XML-Strukturen auffüllen können.Therefore, it is convenient to pass the results of a query as content into methods and constructors that you use to populate XML trees.

Beim Hinzufügen einfachen Inhalts können dieser Methode verschiedene Typen übergeben werden.When adding simple content, various types can be passed to this method. Gültige Typen sind:Valid types include the following:

Beim Hinzufügen komplexen Inhalts können an diese Methode verschiedene Typen übergeben werden:When adding complex content, various types can be passed to this method:

Wenn ein Objekt eine IEnumerable<T> implementiert, wird die Auflistung im Objekt aufgezählt, und alle Elemente in der Auflistung werden hinzugefügt.If an object implements IEnumerable<T>, the collection in the object is enumerated, and all items in the collection are added. Wenn die Auflistung XNode-Objekte oder XAttribute-Objekte enthält, wird jedes Element in der Auflistung getrennt hinzugefügt.If the collection contains XNode or XAttribute objects, each item in the collection is added separately. Wenn die Auflistung Text (oder Objekte, die in Text umgewandelt wurden) enthält, wird der Text in der Auflistung verkettet und als einzelner Textknoten hinzugefügt.If the collection contains text (or objects that are converted to text), the text in the collection is concatenated and added as a single text node.

Wenn der Inhalt null ist, wird nichts hinzugefügt.If content is null, nothing is added. Bei der Übergabe einer Auflistung können Elemente der Auflistung null sein.When passing a collection items in the collection can be null. Ein null-Element in der Auflistung hat keine Auswirkungen auf die Struktur.A null item in the collection has no effect on the tree.

Ein hinzugefügtes Attribut muss innerhalb des Elements, in dem es enthalten ist, einen eindeutigen Namen besitzen.An added attribute must have a unique name within its containing element.

Wenn der neue Inhalt beim Hinzufügen von XNode-Objekten oder XAttribute-Objekten kein übergeordnetes Element besitzt, werden die Objekte einfach an die XML-Struktur angefügt.When adding XNode or XAttribute objects, if the new content has no parent, then the objects are simply attached to the XML tree. Wenn der neue Inhalt bereits ein übergeordnetes Element besitzt und Bestandteil einer anderen XML-Struktur ist, wird der neue Inhalt geklont, und der neu geklonte Inhalt wird an die XML-Struktur angefügt.If the new content already is parented and is part of another XML tree, then the new content is cloned, and the newly cloned content is attached to the XML tree.

Gültiger Inhalt für DokumenteValid Content for Documents

Es ist nicht möglich, einem Dokument Attribute und einfachen Inhalt hinzuzufügen.Attributes and simple content cannot be added to a document.

Die Anzahl der Szenarios, in denen Sie ein XDocument erstellen müssen, ist sehr begrenzt.There are not many scenarios that require you to create an XDocument. Stattdessen können Sie i. d. R. die XML-Strukturen mit einem XElement-Stammknoten erstellen.Instead, you can usually create your XML trees with an XElement root node. Sofern es keine bestimmte Anforderung für das Erstellen eines Dokuments gibt (z. B., weil Sie Verarbeitungsanweisungen und Kommentare auf der obersten Ebene erstellen oder Dokumenttypen unterstützen müssen), ist es oft bequemer, XElement als Stammknoten zu verwenden.Unless you have a specific requirement to create a document (for example, because you have to create processing instructions and comments at the top level, or you have to support document types), it is often more convenient to use XElement as your root node.

Als gültiger Inhalt für Dokumente gilt z. B.:Valid content for a document includes the following:

  • kein oder ein XDocumentType-Objekt:Zero or one XDocumentType objects. Die Dokumenttypen müssen vor dem Element kommen.The document types must come before the element.

  • kein oder ein ElementZero or one element.

  • keine oder mehrere KommentareZero or more comments.

  • keine oder mehrere VerarbeitungsanweisungenZero or more processing instructions.

  • keine oder mehrere Textknoten, die nur Leerraum enthaltenZero or more text nodes that contain only white space.

Konstruktoren und Funktionen, die das Hinzufügen von Inhalt erlaubenConstructors and Functions that Allow Adding Content

Die folgenden Methoden ermöglichen es Ihnen, einem XElement-Objekt oder XDocument-Objekt untergeordneten Inhalt hinzuzufügen:The following methods allow you to add child content to an XElement or an XDocument:

MethodeMethod descriptionDescription
XElement Konstruiert ein XElement.Constructs an XElement.
XDocument Erstellt ein Objekt vom Typ XDocument.Constructs a XDocument.
Add Fügt Inhalt am Ende des untergeordneten Inhalts des XElement- oder XDocument-Objekts hinzu.Adds to the end of the child content of the XElement or XDocument.
AddAfterSelf Fügt Inhalt nach dem XNode hinzu.Adds content after the XNode.
AddBeforeSelf Fügt Inhalt vor dem XNode hinzu.Adds content before the XNode.
AddFirst Fügt Inhalt vor dem untergeordneten Inhalt des XContainer hinzu.Adds content at the beginning of the child content of the XContainer.
ReplaceAll Ersetzt den gesamten Inhalt (untergeordnete Knoten und Attribute) eines XElement.Replaces all content (child nodes and attributes) of an XElement.
ReplaceAttributes Ersetzt die Attribute eines XElement.Replaces the attributes of an XElement.
ReplaceNodes Ersetzt die untergeordneten Knoten durch neuen Inhalt.Replaces the children nodes with new content.
ReplaceWith Ersetzt einen Knoten durch neuen Inhalt.Replaces a node with new content.

Siehe auchSee Also

Creating XML Trees (C#) (Erstellen von XML-Strukturen (C#))Creating XML Trees (C#)