.NET XmlDocument 保留空格

Posted

技术标签:

【中文标题】.NET XmlDocument 保留空格【英文标题】:.NET XmlDocument preserve whitespace 【发布时间】:2011-12-01 22:05:22 【问题描述】:

我正在使用 XmlDocument 解析 XML 文档。当源文件包含

<template>
  <name>ABC</name>
  <version>1</version>
  ABC
  DEF
  <author />
  ABC

我经常需要获取纯底层 XML,为此我使用 InnerXml。但是当只有空格时,InnerXml 会丢弃两个 XML 元素之间的所有空格。意思是上面的片段是 InnerXml 不是你在上面看到的 - 而是:

<template><name>ABC</name><version>1</version>
  ABC
  DEF
  <author />
  ABC

如何在没有丢弃空格的情况下获取XmlNode 的内容?它必须在 XmlDocument 中的某个位置,因为当使用 Save 保存它时,它会像已加载一样输出(意思就像第一个示例一样)。

【问题讨论】:

【参考方案1】:

除非我遗漏了什么,否则您只需将 XMlDocument 发送至PreserveWhitespace,您应该会获得“所见即所得”的加载/保存。

【讨论】:

可悲的是,我认为这是真的,因为Save() 总是给我一个很好的格式。但你是对的,这也会影响InnerXml。已经解决了,谢谢!

以上是关于.NET XmlDocument 保留空格的主要内容,如果未能解决你的问题,请参考以下文章

使用 XmlDocument 获取 InnerText 或 InnerXml 时保留 XML 实体引用

.NET XmlDocument LoadXML 和实体

从 XmlDocument 到 XmlReader .Net

XmlDocument 类正在删除格式、c#、.NET

如何防止 .NET 的 XmlDocument 输出中出现空白 xmlns 属性?

如何在 .NET 中使用 XmlWriter 创建 XmlDocument?