向XElement添加空行以保留其他格式

时间:2012-09-04 08:38:10

标签: c# .net xml xelement

我有一个我在代码中构造的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>

1 个答案:

答案 0 :(得分:1)

查看已发布的解决方案here。我觉得用干净的解决方案是不可能的。我尝试了几种方法,但没有用。我也查看了System.Linq.Xml源代码,但无法真正找到它为什么这样做。

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

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

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