开发者

How make XMLDocument do not put spaces on self-closed tags?

I have an XML well formatted without any spaces. It' must be like that.

When I load it to XMLDocument to sign, the self-closing tags gets an extra white spa开发者_StackOverflow中文版ce and

    <cEAN/>

becomes:

     <cEAN />

Once this document must be signed, it's impossible to remove the white space.

The property PreserveWhiteSpace doesn't made any difference to the result.

How can I change this behavior?


There is no space before the closing "/" in the XmlDocument. XmlDocument is a data structure consisting of nodes. It is binary. It is not text.

Any extra space you are seeing exists only when you serialize the document as text.

Are you actually having a problem with signing, or do you only think you will have such a problem?


I have had this problem before. XML signed by a basic Hash so it can't change when serialized. I solved it by writing a serializer so that I could be sure that it would output the correct XML.

The basic recipe is to Read the XML with a XMLReader, and write out each chunk as it comes.


Try this:

XMLDocument doc;

...

string XMLstring = doc.OuterXml.Replace(" />","/>");

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜