Javascript 从浏览器DOM序列化XML不会';不要创建XML声明

Javascript 从浏览器DOM序列化XML不会';不要创建XML声明,javascript,xml,dom,Javascript,Xml,Dom,好的,我们有一个webapp,它通过XML与web服务通信 到目前为止,我们只是通过将字符串拼凑在一起(并通过XMLHttpRequest/POST发送)来组装这些XML。我想重新考虑一下,使用构建和序列化浏览器中内置的XML DOM树的工具,即document.implementation&XMLSerializer().serializeToString(doc)(请参阅Mozilla文档和)。到目前为止,它运行良好,只是结果字符串不包含XML声明 那么,这是怎么回事?有什么好的建议和/或读

好的,我们有一个webapp,它通过XML与web服务通信

到目前为止,我们只是通过将字符串拼凑在一起(并通过XMLHttpRequest/POST发送)来组装这些XML。我想重新考虑一下,使用构建和序列化浏览器中内置的XML DOM树的工具,即document.implementation&XMLSerializer().serializeToString(doc)(请参阅Mozilla文档和)。到目前为止,它运行良好,只是结果字符串不包含XML声明

那么,这是怎么回事?有什么好的建议和/或读物吗


哦,是的,我发现了描述问题的mozilla bug和一个黑客解决方法(链接线程可通过访问)。

不同的浏览器在输出xml声明方面有不同的行为

以下是我的经验:

  • Mac上的Opera 12.15--XML声明
  • Mac上的Safari 6.0--无声明
  • Mac上的Chrome 26.0--无声明
  • Mac上的Firefox 21.0--无声明
不知道他是干什么的。另一个值得注意的观察是,似乎没有API(我已经找到)来关闭Opera中的声明。因此,如果XML声明已经存在或没有,我会找到一个比您指出的更好的“hack”。如果序列化表单包含声明的话,可能是一个快速的基于字符串的检查(例如,代码>(序列化。切片(0, 21)==)……< /代码>,虽然这不是检查/考虑备选方案的好方法)。