Beibehalten von Leerzeichen beim Laden oder Parsen von XML

In diesem Thema wird beschrieben, wie das Leerraumverhalten von LINQ to XML 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.

In diesem Thema wird das Leerraumverhalten von Methoden beschrieben, die XML-Strukturen auffüllen. Informationen zum Steuern des Leerraumverhaltens beim Serialisieren von XML-Strukturen finden Sie unter Beibehalten von Leerzeichen beim Serialisieren.

Verhalten von Methoden, die XML-Strukturen auffüllen

Die folgenden Methoden der Klassen XElement und XDocument füllen eine XML-Struktur auf. Sie können eine XML-Struktur über eine Datei, eine TextReader, eine XmlReader oder eine Zeichenfolge füllen.

Wenn die Methode nicht LoadOptions als Argument akzeptiert, bleibt nicht signifikanter Leerraum nicht erhalten.

In den meisten Fällen können Sie nicht signifikanten Leerraum optional als Textknoten in der XML-Struktur erhalten, sofern die Methode LoadOptions als Argument akzeptiert. Wenn die Methode den XML-Code aber aus einem XmlReader lädt, bestimmt dieser, ob Leerraum beibehalten wird. Das Festlegen von LoadOptions hat keine Auswirkung.

Bei diesen Methoden wird nicht signifikanter Leerraum als XText-Knoten in die XML-Struktur eingefügt, sofern Leerraum beibehalten wird. Wenn Leerraum nicht beibehalten wird, erfolgt keine Einfügung von Textknoten.

Sie können eine XML-Struktur mit XmlWriter auffüllen. Knoten, die in den XmlWriter geschrieben werden, werden in der Struktur aufgefüllt. Wenn Sie jedoch eine XML-Struktur mit dieser Methode erstellen, bleiben alle Knoten unabhängig davon erhalten, ob der Knoten Leerraum ist und ob er signifikant ist.

Siehe auch

Analysieren von XML (C#)