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

标签 c# .net xml 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>");

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

关于c# - 向 XElement 添加空白行以保留其他格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12259710/

相关文章:

c# - 为什么 SQL 查询不运行?

c# - 如何在linq where条件中传递可选参数

c# - MonoTouch 异常 : Selector invoked from objective-c on a managed object of type that has been GC'ed

c# - C# 和 .NET Framework 在哪里/何时不能成为正确的工具?

c# - 所有 .NET 程序集在 Windows Server 上运行都非常慢

xml - XSLT 获取字符串或 url 的一部分

c# - 将字符串 Id 转换为唯一的 Guid(或从 md5 转换为 Guid)?

c# - 使用 Nuget 安装 neoj4 c# 驱动程序时出错

php - 使用 gzuncompress() 解码 xml 输出 : data error in

java - 以编程方式在 fragment 中包含 View 中的布局