2

我有一个用代码构造的 XElement。它(概念上)有 2 组节点。如果我只是打印出来,我会得到一个格式很好的 Xml 文件,但所有节点都在一起。如果我在两组之间添加几个换行符以便于人类理解,我会丢失它后面的所有格式。如何在两组之间添加一个小中断,并且仍然保留其余的格式?

示例:
这是默认设置:

<root>
  <node>1.1</node>
  <node>1.2</node>
  <node>2.1</node>
  <node>2.2</node>
</root>

这是如果我添加休息:

<root>
  <node>1.1</node>
  <node>1.2</node>

<node>2.1</node><node>2.2</node></root>

这就是我要的:

<root>
  <node>1.1</node>
  <node>1.2</node>

  <node>2.1</node>
  <node>2.2</node>
</root>
4

1 回答 1

3

查看此处发布的解决方案。我的印象是使用干净的解决方案是不可能的。我尝试了几种方法,都没有成功。我还查看了 System.Linq.Xml 源代码,但无法真正找到它这样做的原因。

另一种选择是先做ToString,然后在之后添加换行符(如果您知道哪些节点需要换行符,请使用替换):

result = result.Replace("<parentNode>", Environment.NewLine + "<parentNode>");

但这可能会再次破坏您的缩进。

于 2012-09-04T12:48:22.957 回答