Jquery突然停止解析xml [英] Jquery suddenly stopped parsing xml

查看:85
本文介绍了Jquery突然停止解析xml的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于某些浏览器,对于某些客户端,jquery突然停止解析xml。

For some browsers, for some clients, jquery suddenly stopped parsing xml.

示例xml:

<?xml version="1.0" encoding="UTF-8"?>
<wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs" xmlns="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:example_namespace="https://mylink.com/wfs/example_namespace" xsi:schemaLocation="https://mylink.com/wfs/example_namespace mylink.com?SERVICE=WFS&amp;VERSION=1.0.0&amp;TYPENAME=example_namespace:TABLE&amp;REQUEST=DescribeFeatureType" numberMatched="unknown" numberReturned="1">
<gml:featureMember>
<example_namespace:TABLE fid="TABLE.15">
<example_namespace:ID>15</example_namespace:ID>
</example_namespace:TABLE>
</gml:featureMember>
</wfs:FeatureCollection>

示例jquery

$.get(link, function(data) { //Response is xml like in example.
console.log(data) //works as before
console.log($(data).find("featureMember").find("ID").text())
//Doesn't work now for some clients, but worked before.
})

编辑:

更多一般示例:

XML

<?xml version="1.0" encoding="UTF-8"?>
<a xmlns:c="http://www.example.com">
<c:b>TEST</c:b>
</a>

AND JS:

console.log($(data).find("b").text())

现在返回:,返回前:TEST

now returns: "", before returns: "TEST"

编辑2:

类似的问题:
无法使用jQuery提取SOAP XML


此代码最初在Chrome上周使用,一旦Chrome
更新为v60,它就不再使用了。

This code was originally working in Chrome last week and once Chrome updated to v60 it no longer does.


推荐答案

以这种方式使用jQuery解析XML有一些浏览器兼容性错误我相信。这是一个 不会修复jquery bug 以前。

Parsing XML using jQuery in this way has some browser compatibility bugs I believe. This has been a won't fix jquery bug previously.

当xml中有名称空间时,您可以使用 jquery 通过转义冒号来选择以下内容:

When there are namespaces in the xml you can use jquery selectors like the below by escaping the colon:

.find('gml\\:featureMember')

或使用 nodeName

.find('[nodeName="gml:featureMember"]')

参见下面的演示:

var xml=`<?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns:wfs="http://www.opengis.net/wfs" xmlns="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:example_namespace="https://mylink.com/wfs/example_namespace" xsi:schemaLocation="https://mylink.com/wfs/example_namespace mylink.com?SERVICE=WFS&amp;VERSION=1.0.0&amp;TYPENAME=example_namespace:TABLE&amp;REQUEST=DescribeFeatureType" numberMatched="unknown" numberReturned="1"><gml:featureMember><example_namespace:TABLE fid="TABLE.15"><example_namespace:ID>15</example_namespace:ID></example_namespace:TABLE></gml:featureMember></wfs:FeatureCollection>`;

console.log($(xml)
  .find('gml\\:featureMember')
  .find("example_namespace\\:ID").text());

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

这篇关于Jquery突然停止解析xml的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆