MSXML和Document.xml属性的换行符规范化问题

3
我创建了以下简单的XML(使用C转义序列)"<A>\n</A>",当MSXML(v4和v6)使用IXMLDOMDocument2.xml序列化DOM文档时,它会将换行符更改为dos格式,并返回:"<A>\r\n</A>"。
当我使用DOM仅检索<A>元素内的字符串节点时,我得到了正确的单个字符("\n")字符串。
当然,我已经将preserveWhiteSpace设置为VARIANT_TRUEXML.Net和Xerces解析器正常工作,并在序列化XML文档时不修改存储的字符串。
这是msxml中的一个bug吗?有什么想法吗?
谢谢 Jiri
1个回答

0

微软在 MSXML 4 及以后的版本中更改了换行符串行化处理的方式,以符合 w3wc 标准(请参阅http://support.microsoft.com/kb/261293

我不知道为什么在 .Net 的 xml 实现中没有做同样的事情,但是在 .Net 2.0 中的 Web Services 中却是这样的。

上一次我遇到这个问题时得出的结论是,你需要考虑到换行符可能会被不可预测地串行化(例如通过将 \r\n 替换为 \n),或者你需要对文本进行 base-64 编码(或相当于此种编码的方法)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接