我有一个格式良好的 XML,没有任何空格。一定是这样的。
当我将它加载到 XMLDocument 以进行签名时,自闭合标签会获得一个额外的空格,并且
<cEAN/>
变成:
<cEAN />
一旦必须签署此文件,就不可能删除空白。
PreserveWhiteSpace 属性对结果没有任何影响。
我怎样才能改变这种行为?
我有一个格式良好的 XML,没有任何空格。一定是这样的。
当我将它加载到 XMLDocument 以进行签名时,自闭合标签会获得一个额外的空格,并且
<cEAN/>
变成:
<cEAN />
一旦必须签署此文件,就不可能删除空白。
PreserveWhiteSpace 属性对结果没有任何影响。
我怎样才能改变这种行为?
中的结束“/”之前没有空格XmlDocument
。XmlDocument
是由节点组成的数据结构。它是二进制的。它不是文本。
您看到的任何额外空间仅在您将文档序列化为文本时才存在。
你真的有签名的问题,还是你只认为你会有这样的问题?
我以前遇到过这个问题。XML 由基本哈希签名,因此在序列化时不会更改。我通过编写一个序列化程序解决了这个问题,这样我就可以确定它会输出正确的 XML。
基本方法是使用XMLReader读取 XML ,并写出每个块。
尝试这个:
XMLDocument 文档;
...
字符串 XMLstring = doc.OuterXml.Replace(" />","/>");