我目前正在寻找一种使用 JavaScript 从服务器 XML 响应中提取信息的简便方法。 jQuery 似乎是一个很好的选择。
在使用 jQuery 解析 XML 时,我经常遇到类似于以下代码片段的代码示例:
function parseXml(responseXml) {
$(responseXml).find('someSelector')...
}
然而,jQuery Core 文档(下面的引文)明确指出您不应该这样做:
jQuery( html, [ ownerDocument ] )
html
A string of HTML to create on the fly. Note that this parses HTML, not XML.
这让我想知道为什么这么多在线资源仍然建议通过 $(responseXml)
解析 XML。尽管 API 文档怎么说,这通常可以正常工作吗?在什么情况下像这样解析 XML 实际上不起作用?
最佳答案
我不知道我的经验是否可以推广,但我在使用 jQuery 解析 SOAP 消息时遇到过一些问题。这可能不归结为 jQuery(正如您指出的文档不推荐它)。
无论如何,您询问了细节:我发现所有带有 namespace 的东西都有问题。当然,对于真正的命名空间感知,您需要能够将命名空间前缀解析为命名空间 URI 的东西。我从没想过 jQuery 能够做到这一点,但即使只匹配前缀也不适合我。这对我来说尤其成问题,因为我处理的 SOAP 消息很容易混合 4 或 5 个 namespace 。所以我回去自己做 DOM 遍历来解决这个问题(它有自己的一系列问题)
也就是说,我确实希望 jQuery 能够处理 xhtml 文档(只要标签名称没有前缀),并且我希望它也适用于其他不使用 namespace 前缀的 xml 文档。
关于jquery - 能否使用 jQuery 的 $(responseXML) 语法可靠地解析 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2124924/