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.
Ein geladenes und dann gespeichertes XmlDocument kann in den folgenden Punkten vom Original abweichen:
Wenn die PreserveWhitespace-Eigenschaft vor dem Aufruf der Save-Methode auf
truefestgelegt wurde, bleibt der im Dokument enthaltene Leerraum in der Ausgabe erhalten. Ist diese Eigenschaftfalse, rückt XmlDocument die Ausgabe automatisch ein.Der gesamte Leerraum zwischen Attributen wird zu einem einzigen Leerzeichen zusammengefasst.
Der Leerraum zwischen den Elementen hat sich verändert. Signifikanter Leerraum bleibt im Gegensatz zu nicht signifikantem Leerraum erhalten. Beim Speichern des Dokuments wird standardmäßig der Modus zum XmlTextWriterEinzug verwendet, um die Ausgabe übersichtlich und besser lesbar zu gestalten.
Das Anführungszeichen, das um Attributwerte verwendet wird, wird standardmäßig in doppelte Anführungszeichen geändert. Sie können die QuoteChar-Eigenschaft von XmlTextWriter verwenden, um das Anführungszeichen als doppeltes oder einfaches Anführungszeichen festzulegen.
Numerische Zeichenentitäten wie
{werden standardmäßig erweitert.Die Bytereihenfolgenmarkierung im Ausgangsdokument bleibt nicht erhalten. UCS-2 wird als UTF-8 gespeichert, wenn keine XML-Deklaration erstellt wird, die eine andere Codierung angibt.
Wenn das XmlDocument als Datei oder als Stream ausgegeben wird, entspricht die Ausgabe dem Inhalt des Dokuments. Eine XmlDeclaration wird also nur dann ausgegeben, wenn eine solche im Dokument vorhanden ist, und die für die Ausgabe verwendete Codierung entspricht der im Deklarationsknoten angegebenen Codierung.
Schreiben einer "XmlDeclaration"
Die XmlDocument- und XmlDeclaration-Mitglieder von OuterXml sowie die XmlDocument-Methoden von Save und WriteContentTo und die Methoden InnerXml und WriteTo erstellen eine XML-Deklaration.
Bei der XmlDocument-Eigenschaft und der OuterXml-Eigenschaft von InnerXml und den Methoden Save, WriteTo und WriteContentTo wird die in der XML-Deklaration ausgegebene Codierung dem XmlDeclaration-Knoten entnommen. Wenn kein XmlDeclaration-Knoten vorhanden ist, wird keine XmlDeclaration ausgegeben. Wenn der XmlDeclaration-Knoten keine Codierung enthält, wird in der XML-Deklaration keine Codierung ausgegeben.
Die XmlDocument.Save- und XmlDocument.Save-Methoden schreiben immer ein XmlDeclaration. Diese Methoden übernehmen die Codierung des Writers, in den sie schreiben. Der Codierungswert des Writer überschreibt also die Codierung im Dokument und in der XmlDeclaration. Das folgende Codebeispiel schreibt beispielsweise keine Codierung in die XML-Deklaration der Ausgabedatei out.xml.
Dim doc As New XmlDocument()
Dim tw As XmlTextWriter = New XmlTextWriter("out.xml", Nothing)
doc.Load("text.xml")
doc.Save(tw)
XmlDocument doc = new XmlDocument();
XmlTextWriter tw = new XmlTextWriter("out.xml", null);
doc.Load("text.xml");
doc.Save(tw);
Bei der Save-Methode wird die XML-Deklaration mit der WriteStartDocument-Methode der XmlWriter-Klasse geschrieben. Das Überschreiben der WriteStartDocument-Methode ändert daher, wie der Anfang des Dokuments geschrieben wird.
Bei den Membern XmlDeclaration, OuterXml und WriteTo von InnerXml wird keine Codierung geschrieben, wenn die Encoding-Eigenschaft nicht festgelegt ist. Andernfalls entspricht die in der XML-Deklaration ausgegebenen Codierung der in der Encoding-Eigenschaft angegebenen Codierung.
Schreiben des Dokumentinhalts mit der "OuterXml"-Eigenschaft
Die OuterXml-Eigenschaft ist eine Erweiterung von Microsoft des XML-DOM-Standards (Document Object Model) des W3C (Word Wide Web Consortium). Die OuterXml-Eigenschaft wird zum Abrufen des Markups des ganzen XML-Dokuments oder eines Knotens und seiner untergeordneten Knoten verwendet. OuterXml gibt das Markup zurück, das diesen Knoten und alle ihm untergeordneten Knoten darstellt.
Im folgenden Codebeispiel wird ein Dokument vollständig als Zeichenfolge gespeichert.
Dim mydoc As New XmlDocument()
' Perform application needs here, like mydoc.Load("myfile");
' Now save the entire document to a string variable called "xml".
Dim xml As String = mydoc.OuterXml
XmlDocument mydoc = new XmlDocument();
// Perform application needs here, like mydoc.Load("myfile");
// Now save the entire document to a string variable called "xml".
string xml = mydoc.OuterXml;
Im folgenden Codebeispiel wird nur das Dokument-Element gespeichert.
' For the content of the Document Element only.
Dim xml As String = mydoc.DocumentElement.OuterXml
// For the content of the Document Element only.
string xml = mydoc.DocumentElement.OuterXml;
Im Gegensatz dazu können Sie die InnerText-Eigenschaft verwenden, um den Inhalt der untergeordneten Knoten zu erhalten.