Beibehalten von Leerraum beim Serialisieren
Aktualisiert: November 2007
In diesem Thema wird beschrieben, wie das Leerraumverhalten beim Serialisieren von XML-Strukturen gesteuert werden kann.
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. Wenn Sie den XML-Code mit Formatierung serialisieren, bleibt nur signifikanter Leerraum in der XML-Struktur erhalten. Dies ist das Standardverhalten bei 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, die XML-Strukturen serialisieren
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, kann angegeben werden, dass die Methode das serialisierte XML nicht formatiert. In diesem Fall wird der gesamte Leerraum in der XML-Struktur beibehalten.