Beibehalten von Leerraum beim Laden oder Analysieren von XML

In diesem Thema wird beschrieben, wie das Leerraumverhalten von LINQ to XML gesteuert werden kann. 

Ein häufig anzutreffendes Szenario sieht wie folgt aus: Der beabsichtigte XML-Code wird gelesen, es wird eine In-Memory-XML-Struktur ohne Leerraumtextknoten erstellt (der Leerraum bleibt nicht erhalten), der XML-Code wird geändert, und dann wird der XML-Code 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 in irgendeiner Form 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 Leerraum beim Serialisieren.

Verhalten von Methoden, die XML-Strukturen auffüllen

Die folgenden Methoden in den Klassen XElement und XDocument füllen eine XML-Struktur auf.Sie können eine XML-Struktur von einer Datei, einem TextReader, einem XmlReader oder einer Zeichenfolge aus auffü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.Die Einrichtung von PreserveWhitespace hat keine Auswirkungen.

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.

Zum Erstellen einer XML-Struktur können Sie einen XmlWriter verwenden.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

Konzepte

Analysieren von XML-Dokumenten