3

我创建了以下简单的 xml(使用了 C 转义序列)“ <A>\n</A>”当MSXML(v4 和 v6)使用 IXMLDOMDocument2.xml 序列化 DOM 文档时,它将换行符更改为 dos 格式并返回:“ <A>\r\n</A>”。

当我使用 DOM 仅检索<A>元素内的字符串节点时,我得到正确的单个("\n")字符串。

当然我已经preserveWhiteSpace设置为VARIANT_TRUE

XML.NetXerces 解析器工作正常,并且在序列化 xml 文档时不会修改存储的字符串。

这是 msxml 中的错误吗?任何想法?

谢谢吉里

4

1 回答 1

0

Microsoft 从 MSXML 4 开始更改了换行序列化的处理方式,以符合 w3wc 标准(请参阅http://support.microsoft.com/kb/261293

我不知道为什么 .Net 中的 xml 实现没有这样做,但.Net 2.0 中的 Web 服务也是如此。

当我上次遇到这个问题时,我得出的结论是,您要么需要考虑换行符可能会不可预测地序列化(例如通过替换\r\n\n),要么您需要对文本进行 base-64 编码(或等效)

于 2009-10-26T16:43:15.317 回答