7

我有一个格式良好的 XML,没有任何空格。一定是这样的。

当我将它加载到 XMLDocument 以进行签名时,自闭合标签会获得一个额外的空格,并且

    <cEAN/>

变成:

     <cEAN />

一旦必须签署此文件,就不可能删除空白。

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

我怎样才能改变这种行为?

4

3 回答 3

1

中的结束“/”之前没有空格XmlDocumentXmlDocument是由节点组成的数据结构。它是二进制的。它不是文本。

您看到的任何额外空间仅在您将文档序列化为文本时才存在。

你真的有签名的问题,还是你只认为你会有这样的问题?

于 2011-02-03T00:34:14.633 回答
0

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

基本方法是使用XMLReader读取 XML ,并写出每个块。

于 2011-02-03T00:45:32.427 回答
0

尝试这个:

XMLDocument 文档;

...

字符串 XMLstring = doc.OuterXml.Replace(" />","/>");

于 2013-05-13T13:28:02.133 回答