【问题标题】:Add blank lines to XElement preserving other formatting向 XElement 添加空行,保留其他格式
【发布时间】:2012-09-04 08:38:09
【问题描述】:

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

示例:
这是默认值:

<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 吗?

标签: c# .net xml xelement


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2017-08-25
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 2012-04-24
    • 1970-01-01
    • 2015-11-27
    相关资源
    最近更新 更多