如何使XMLDocument不在自闭标签上放置空格?

时间:2011-02-03 00:32:06

标签: c# c#-4.0 xmldocument signedxml

我有一个格式良好的XML,没有任何空格。它必须是那样的。

当我将其加载到XMLDocument进行签名时,自闭标签会获得额外的空白区域

    <cEAN/>

变为:

     <cEAN />

一旦签署此文件,就无法删除空格。

属性PreserveWhiteSpace对结果没有任何影响。

如何更改此行为?

3 个答案:

答案 0 :(得分:3)

XmlDocument中关闭“/”之前没有空格。 XmlDocument是由节点组成的数据结构。它是二进制的。这不是文字。

只有在将文档序列化为文本时,才会看到您看到的任何额外空间。

您实际上是在签名时遇到问题,还是只认为 会出现这样的问题?

答案 1 :(得分:0)

我以前遇到过这个问题。 XML由基本哈希签名,因此在序列化时无法更改。我通过编写一个序列化程序解决了这个问题,这样我就可以确定它会输出正确的XML。

基本配方是用XMLReader读取XML,并在出现时写出每个块。

答案 2 :(得分:0)

试试这个:

XMLDocument doc;

...

string XMLstring = doc.OuterXml.Replace(“/&gt;”,“/&gt;”);