gpt4 book ai didi

javascript - 带有命名空间的 XML 跨浏览器 Javascript 解析器

转载 作者:行者123 更新时间:2023-11-28 02:51:35 25 4
gpt4 key购买 nike

这个主题之前已经讨论过,但是距离上一个关于命名空间处理的问题已经有一段时间了。

是否有跨浏览器解决方案可以在 Javascript 中按名称获取元素?

<?xml version="1.0" encoding="UTF-8"?>
<NS:response success="1" xmlns:NS="http://someURI/ns">
<NS:user firstname="foo" lastname="bar"></NS:user>
<NS:cookie value="2c0ea35bcac2e05d439609367a236b28" name="session"></NS:cookie>
</NS:response>

到目前为止我所得到的:

var oXML = (new DOMParser()).parseFromString(xmlstring, "text/xml");
var root = oXML.documentElement;
var user = typeof(user=root.getElementsByTagName(root.prefix + ':user')[0]) === "undefined"
?root.getElementsByTagName('user')[0]
:user;

尚未在 IE 中进行测试,但如果有人有任何跨浏览器解决方案,我很乐意听取。

其他注意事项:

  • getElementsByTagNameNS() - 我试图避免指定 namespace /uri
  • 在创建 XML 文档之前使用正则表达式去除命名空间
  • 不使用命名空间 - 我有这个选项,但不想走那条路

最佳答案

您可以尝试另一种方法,通过使用通用 XSLT(如 http://code.google.com/p/xml2json-xslt/)将 XML 转换为 JSON 服务器端。 ,并仅向浏览器传递 JSON。

这会增加服务器响应的少量开销,但与浏览器渲染 XML 所花费的代码量和时间相比,这不算什么。

除了 IE 之外,它的 msxml 令人印象深刻,我认为与 JSON 相比,在常见浏览器中读取 XML 确实很痛苦。

关于javascript - 带有命名空间的 XML 跨浏览器 Javascript 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com