javascript/jquery解析XML带namespace的标签

在前端解析XML数据的时候遇到一个问题,当标签名含有命名空间时,如:

<c:name>123</c:name>

使用通常的解析方法:
jq:$(xml).find(“c:name”)或js:xml.getElementsByTagName(“c:name”)
无法取得该节点的,后来查到xml文档中有一个和js方法类似的getElementsByTagNameNS(“curl”,”name”)就可以获得带有命名空间的节点对象了。然后通过innerHTML取到数据。
但是当在IE中使用的时候this.getElementsByTagNameNS(“http://www.opengis.net/ows/1.1“,”Title”)[0].innerHTML = undefined,在chrome中可以正常取值。
开始网上查了些资料,看到有人评论说IE不支持NS这个方法,也看到了一个人说自己写的一个jquery插件http://www.rfk.id.au/blog/entry/xmlns-selectors-jquery/ ,用了一下发现并不好用。
然后呢,在IE试验有没有其他更好的方法时(由于需要解析的xml节点不固定,必须通过标签名获取值,而不能遍历节点获取),无意中发现IE可以通过NS方法获取到节点对象的,而节点对象可以使用jquery的text方法取得值,就是这样:

 var node = this.getElementsByTagNameNS("http://www.opengis.net/ows/1.1","Title")[0];
 var nodeText = $(node).text();
 console.log(nodeText);

成功取到标签内的数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值