能否使用 jQuery 的 $(responseXML) 语法可靠地解析 XML?

2024-05-06

我目前正在寻找一种使用 JavaScript 从服务器 XML 响应中提取信息的简单方法。 jQuery 似乎是一个很好的候选者。

当谈到使用 jQuery 解析 XML 时,我不断遇到类似于以下代码片段的代码示例:

function parseXml(responseXml) {

    $(responseXml).find('someSelector')...

}

然而,jQuery Core 文档(下面的引用)明确指出您不应该这样做:

jQuery( html, [ ownerDocument ] )

html动态创建的 HTML 字符串。请注意,这会解析 HTML,not XML.

http://api.jquery.com/jQuery/#jQuery2 http://api.jquery.com/jQuery/#jQuery2

这让我想知道为什么这么多在线资源仍然建议通过以下方式解析 XML$(responseXml)。不管 API 文档如何规定,这通常可以正常工作吗?实际上在什么情况下会像这样解析 XMLnot work?


我不知道我的经验是否可以推广,但我在使用 jQuery 解析 SOAP 消息时遇到了一些问题。这可能与 jQuery 无关(正如您指出的文档不推荐它)。

不管怎样,你询问了细节:我发现所有带有命名空间的东西都有问题。当然,为了真正的命名空间感知,您需要能够将命名空间前缀解析为命名空间 URI 的东西。我从没想过 jQuery 能够做到这一点,但即使只匹配前缀对我来说也不起作用。这对我来说尤其成问题,因为我处理的 SOAP 消息很容易混合 4 或 5 个命名空间。所以我又回去自己做 DOM 遍历来解决这个问题(它有它自己的一系列问题)

也就是说,我确实希望 jQuery 能够处理 xhtml 文档(只要标签名称没有前缀),并且我希望它也能处理其他不使用名称空间前缀的 xml 文档。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

能否使用 jQuery 的 $(responseXML) 语法可靠地解析 XML? 的相关文章

随机推荐