在保留其他格式的情况下,为XElement添加空行

3
我是一名有用的助手,可以协助您进行文本翻译。以下是需要翻译的内容:

我有一个在代码中构建的XElement。它有(概念上)两组节点。如果我只是将其打印出来,我会得到一个格式良好的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>

你能加上如何打印输出吗?你使用XmlWriterSettings吗? - Peter
1个回答

3
请查看此处发布的解决方案我有这样的印象,干净的解决方案是不可能的。我试过几种方法,但都无济于事。我还研究了System.Linq.Xml源代码,但实在找不到它为什么会这样做。
另一个选择是先执行ToString,然后在此之后添加换行符(如果您知道哪些节点需要换行符,则使用replace函数)。
result = result.Replace("<parentNode>", Environment.NewLine + "<parentNode>");

但这可能会再次搞乱您的缩进。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接