Beibehalten von Leerzeichen beim SerialisierenPreserving White Space While Serializing

In diesem Thema wird beschrieben, wie Sie das Leerraumverhalten beim Serialisieren von XML-Strukturen steuern können.This topic describes how to control white space when serializing an XML tree.

Es kommt häufig vor, dass XML mit Einzügen gelesen und dann im Arbeitsspeicher eine XML-Struktur ohne Leerraumtextknoten erstellt wird (Leerräume bleiben also nicht erhalten). Anschließend wird der XML-Code geändert und dann mit Einzügen gespeichert.A common scenario is to read indented XML, create an in-memory XML tree without any white space text nodes (that is, not preserving white space), perform some operations on the XML, and then save the XML with indentation. Wenn Sie den XML-Code mit Formatierung serialisieren, bleibt nur signifikanter Leerraum in der XML-Struktur erhalten.When you serialize the XML with formatting, only significant white space in the XML tree is preserved. Dies ist das Standardverhalten bei LINQ to XML.This is the default behavior for LINQ to XML.

Aber auch dieses Szenario ist häufig anzutreffen: XML-Code, der bereits absichtlich mit Einzügen versehen wurde, wird gelesen und geändert.Another common scenario is to read and modify XML that has already been intentionally indented. Sie möchten nicht, dass diese Einzüge irgendwie geändert werden.You might not want to change this indentation in any way. In LINQ to XML können Sie dies erreichen, indem Sie den Leerraum beim Laden oder Analysieren des XML-Codes beibehalten und dann beim Serialisieren des XML-Codes die Formatierung deaktivieren.To do this in LINQ to XML, you preserve white space when you load or parse the XML and disable formatting when you serialize the XML.

Leerraumverhalten von Methoden, die XML-Strukturen serialisierenWhite Space Behavior of Methods that Serialize XML Trees

Die folgenden Methoden in den Klassen XElement und XDocument serialisieren eine XML-Struktur.The following methods in the XElement and XDocument classes serialize an XML tree. Sie können XML-Strukturen in eine Datei, in einen TextReader oder in einen XmlReader serialisieren.You can serialize an XML tree to a file, a TextReader, or an XmlReader. Die ToString-Methode nimmt eine Serialisierung in eine Zeichenfolge vor.The ToString method serializes to a string.

Wenn die Methode nicht SaveOptions als Argument akzeptiert, formatiert die Methode den serialisierten XML-Code, indem sie ihn mit Einzügen versieht.If the method does not take SaveOptions as an argument, then the method will format (indent) the serialized XML. In diesem Fall wird der gesamte nicht signifikante Leerraum in der XML-Struktur verworfen.In this case, all insignificant white space in the XML tree is discarded.

Wenn die Methode SaveOptions als Argument akzeptiert, können Sie angeben, dass der serialisierte XML-Code nicht formatiert (eingerückt) werden soll.If the method does take SaveOptions as an argument, then you can specify that the method not format (indent) the serialized XML. In diesem Fall wird der gesamte Leerraum in der XML-Struktur beibehalten.In this case, all white space in the XML tree is preserved.

Siehe auchSee Also

Serialisieren von XML-Strukturen (C#)Serializing XML Trees (C#)