Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die XDocument Klasse enthält die für ein gültiges XML-Dokument erforderlichen Informationen, die eine XML-Deklaration, Verarbeitungsanweisungen und Kommentare enthalten.
Sie müssen nur XDocument Objekte erstellen, wenn Sie die spezifische Funktionalität der XDocument Klasse benötigen. In vielen Fällen können Sie direkt mit XElement arbeiten. Direktes Arbeiten mit XElement ist ein einfacheres Programmiermodell.
XDocument wird von XContainer abgeleitet, sodass es untergeordnete Knoten enthalten kann. XDocument Objekte können jedoch nur einen untergeordneten XElement Knoten aufweisen. Dies spiegelt den XML-Standard wider, dass nur ein Stammelement in einem XML-Dokument vorhanden sein kann.
Komponenten von XDocument
Eine XDocument kann die folgenden Elemente enthalten:
- Ein XDeclaration Objekt. XDeclaration ermöglicht es Ihnen, die relevanten Teile einer XML-Deklaration anzugeben: die XML-Version, die Codierung des Dokuments und ob das XML-Dokument eigenständig ist.
- Ein XElement Objekt. Dieses Objekt ist der Stammknoten des XML-Dokuments.
- Eine beliebige Anzahl von XProcessingInstruction Objekten. Eine Verarbeitungsanweisung kommuniziert Informationen an eine Anwendung, die den XML-Code verarbeitet.
- Eine beliebige Anzahl von XComment Objekten. Die Kommentare sind dem Stammelement nebengeordnet.
- genau ein XDocumentType für die 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.
Standardmäßig legt LINQ to XML die Version auf "1.0" fest und legt die Codierung auf "utf-8" fest.
Verwenden Sie XElement ohne XDocument
Wie bereits erwähnt, ist die XElement Klasse die Hauptklasse in der LINQ to XML-Programmierschnittstelle. In vielen Fällen erfordert Ihre Anwendung nicht, dass Sie ein Dokument erstellen. Mithilfe der XElement Klasse können Sie folgende Aktionen ausführen:
- Erstellen Sie einen XML-Baum.
- Hinzufügen weiterer XML-Strukturen
- Ändern Sie den XML-Baum.
- Speichern Sie sie.
Verwenden von XDocument
Zum Konstruieren eines XDocument können Sie genauso die funktionale Konstruktion verwenden wie zum Konstruieren von XElement-Objekten.
Im folgenden Beispiel wird ein XDocument Objekt und die zugehörigen enthaltenen Objekte erstellt.
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");
Dim doc As XDocument = <?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.-->
doc.Save("test.xml")
Das Beispiel generiert die folgende Ausgabe in „test.xml“:
<?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.-->