好的,我们有一个通过XML与Web服务通信的webapp。
截至目前,我们正在通过一起攻击字符串(并通过XMLHttpRequest / POST发送)来组装这些XML。我想重新考虑使用这些工具来构建和序列化浏览器中内置的XML DOM树,即document.implementation& XMLSerializer()。serializeToString(doc)(请参阅Mozilla文档here和here)。到目前为止,它一直工作正常,除了生成的字符串不包含XML声明。
那么,该怎么办呢?有什么好的建议和/或阅读吗?
哦,是的,我发现this mozilla错误描述了这个问题,并且有一个hacky解决方法(链接的线程可以通过archive.org获得)。
答案 0 :(得分:1)
不同的浏览器在输出xml声明方面有不同的行为。
以下是我的经历:
不确定IE的用途。另一个值得注意的观察是,似乎没有API(我已经找到)关闭Opera中的声明。结果,我发现一个更好的'hack'而不是你所指出的那个,知道XML声明是否已经存在。如果序列化表单包含声明,也许是一个快速的基于字符串的检查就足够了(例如if (serialized.slice(0, 21) == "<?xml version=\"1.0\"?>") ...
虽然这不是检查/我考虑替代方案的好方法。)