序列化时保留空白

本主题描述在序列化 XML 树时如何控制空白。

一种常用情况是读取缩进的 XML,在内存中创建一个没有任何空白文本节点(即不保留空白)的 XML 树,对该 XML 执行某些操作,然后保存带缩进的 XML。 在序列化带格式的 XML 时,只保留 XML 树中有意义的空白。 这是 LINQ to XML 的默认行为。

另一个常见的情况是读取和修改已经有意缩进的 XML。 您可能不想以任何方式更改这种缩进。 若要在 LINQ to XML 中执行此操作,您要在加载或解析 XML 时保留空白,并在序列化 XML 时禁用格式设置。

用于序列化 XML 树的方法的空白行为

XElementXDocument 类中的以下方法用于序列化 XML 树。 可以将 XML 树序列化为文件、TextReaderXmlReader。 ToString 方法序列化为字符串。

如果方法不接受 SaveOptions 作为参数,那么该方法将格式化(缩进)序列化的 XML。 在这种情况下,将丢弃 XML 树中所有无意义的空白。

如果方法接受 SaveOptions 作为参数,那么您可以指定不格式化(缩进)序列化的 XML。 在这种情况下,将保留 XML 树中的所有空白。

请参见

概念

序列化 XML 树