c# - 向 XElement 添加空白行以保留其他格式

我有一个用代码构建的 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>

最佳答案

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

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

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

但这可能会再次弄乱你的缩进。

https://stackoverflow.com/questions/12259710/

相关文章:

regex - 允许方括号的正则表达式

c# - XML Serializer 不序列化具有公共(public) getter 但没有 se

cassandra - 如何将两个 Cassandra 集群合并为一个?

web-applications - 在 Servlet 中获取 Web 应用程序名称

c# - 是否可以在 MS Access 中执行批量插入

php - 使用ghostscript输出文件目录

c# - 哪个类需要实现 INotifyDataErrorInfo?

export-to-excel - SSIS导出到excel

quartz-scheduler - 使用简单的xml来驱动Quartz Scheduler

php - 在根域 (www) 上启动一个 php $_SESSION 并跨子域共享 session