Freigeben über


Leerraum beim Serialisieren beibehalten (LiNQ to XML)

In diesem Thema wird beschrieben, wie Sie das Leerraumverhalten beim Serialisieren von XML-Strukturen steuern können.

Ein gängiges Szenario ist das Einlesen von eingerücktem XML-Code, das Erstellen einer XML-Struktur im Arbeitsspeicher ohne Textknoten mit Leerraum (d. h., ohne Beibehaltung des Leerraums), das Anwenden einiger Vorgänge auf den XML-Code und das anschließende Speichern des XML-Codes mit Einrückung. Wenn Sie den XML-Code mit Formatierung serialisieren, bleibt nur signifikanter Leerraum in der XML-Struktur erhalten. Dies ist das Standardverhalten von 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. Sie möchten nicht, dass diese Einzüge irgendwie geändert werden. 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.

Leerraumverhalten von Methoden zum Serialisieren vonXML-Strukturen

Die folgenden Methoden in den Klassen XElement und XDocument serialisieren eine XML-Struktur. Sie können XML-Strukturen in eine Datei, in einen TextReader oder in einen XmlReader serialisieren. Die ToString-Methode nimmt eine Serialisierung in eine Zeichenfolge vor.

Wenn die Methode nicht SaveOptions als Argument akzeptiert, formatiert die Methode den serialisierten XML-Code, indem sie ihn mit Einzügen versieht. In diesem Fall wird der gesamte nicht signifikante Leerraum in der XML-Struktur verworfen.

Wenn die Methode SaveOptions als Argument akzeptiert, können Sie angeben, dass der serialisierte XML-Code nicht formatiert (eingerückt) werden soll. In diesem Fall wird der gesamte Leerraum in der XML-Struktur beibehalten.