Gültiger Inhalt von XElement- und XDocument-Objekten (LINQ to XML)
In diesem Artikel werden die gültigen Argumente beschrieben, die an Konstruktoren übergeben werden können, sowie Methoden, die Sie zum Hinzufügen von Inhalten zu Elementen und Dokumenten verwenden.
Gültige Typen für den XElement-Konstruktor
Abfragen ergeben häufig IEnumerable<T> für XElement oder IEnumerable<T> für XAttribute. Sie können Sammlungen von XElement- oder XAttribute-Objekten an den Konstruktor XElement übergeben. Aus diesem Grund ist es praktisch, die Ergebnisse einer Abfrage als Inhalt an Methoden und Konstruktoren zu übergeben, die Sie zum Erstellen von XML-Bäumen verwenden.
Beim Hinzufügen einfacher Inhalte können verschiedene Typen an diese Methode übergeben werden, darunter:
- String
- Double
- Single
- Decimal
- Boolean
- DateTime
- TimeSpan
- DateTimeOffset
- Alle Typen, die
Object.ToString
implementieren. - Alle Typen, die IEnumerable<T> implementieren.
Beim Hinzufügen komplexer Inhalte können verschiedene Typen an diese Methode übergeben werden, darunter:
- XObject
- XNode
- XAttribute
- alle Typen, die eine IEnumerable<T> implementieren
Wenn ein Objekt eine IEnumerable<T> implementiert, wird die Auflistung im Objekt aufgezählt, und alle Elemente in der Auflistung werden hinzugefügt. Wenn die Auflistung XNode oder XAttribute Objekte enthält, wird jedes Element in der Auflistung separat hinzugefügt. Wenn die Auflistung Text (oder Objekte, die in Text konvertiert werden) enthält, wird der Text in der Auflistung verkettet und als einzelner Textknoten hinzugefügt.
Wenn Inhalt null
ist, wird nichts hinzugefügt. Bei der Übergabe einer Auflistung können Elemente der Auflistung null
sein. Ein null
-Element in der Auflistung hat keine Auswirkungen auf die Struktur.
Ein hinzugefügtes Attribut muss einen eindeutigen Namen innerhalb des enthaltenden Elements aufweisen.
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. 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.
Gültige Typen für den XDocument-Konstruktor
Attribute und einfache Inhalte können einem Dokument nicht hinzugefügt werden.
Die Anzahl der Szenarios, in denen Sie ein XDocument erstellen müssen, ist sehr begrenzt. Stattdessen können Sie i. d. R. die XML-Strukturen mit einem XElement-Stammknoten erstellen. Sofern Sie nicht über eine bestimmte Anforderung zum Erstellen eines Dokuments verfügen (z. B. weil Sie Verarbeitungsanweisungen und Kommentare auf oberster Ebene erstellen müssen oder Dokumenttypen unterstützen müssen), ist es häufig praktischer, XElement als Stammknoten zu verwenden.
Gültige Typen für den XDocument Konstruktor umfassen Folgendes:
- kein oder ein XDocumentType-Objekt: Die Dokumenttypen müssen vor dem Element kommen.
- kein oder ein Element
- keine oder mehrere Kommentare
- keine oder mehrere Verarbeitungsanweisungen
- keine oder mehrere Textknoten, die nur Leerraum enthalten
Konstruktoren und Funktionen zum Hinzufügen von Inhalten
Die folgenden Methoden ermöglichen es Ihnen, einem XElement-Objekt oder XDocument-Objekt untergeordneten Inhalt hinzuzufügen:
Methode | Beschreibung |
---|---|
XElement | Konstruiert ein XElement. |
XDocument | Erstellt ein Objekt vom Typ XDocument. |
Add | Fügt Inhalt am Ende des untergeordneten Inhalts des XElement- oder XDocument-Objekts hinzu. |
AddAfterSelf | Fügt Inhalt nach dem XNode hinzu. |
AddBeforeSelf | Fügt Inhalt vor dem XNode hinzu. |
AddFirst | Fügt Inhalt vor dem untergeordneten Inhalt des XContainer hinzu. |
ReplaceAll | Ersetzt den gesamten Inhalt (untergeordnete Knoten und Attribute) eines XElement. |
ReplaceAttributes | Ersetzt die Attribute eines XElement. |
ReplaceNodes | Ersetzt die untergeordneten Knoten durch neuen Inhalt. |
ReplaceWith | Ersetzt einen Knoten durch neuen Inhalt. |