对于某些浏览器,对于某些客户端,jquery突然停止解析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&VERSION=1.0.0&TYPENAME=example_namespace:TABLE&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>
和JS:
console.log($(data).find("b").text())
现在返回:“”,之前返回:“TEST”
编辑 2:
类似问题: Cannot extract SOAP XML with jQuery
This code was originally working in Chrome last week and once Chrome updated to v60 it no longer does.
最佳答案
将data
传递给$.parseXML()
得到一个#document
,使用.querySelector()
$.parseXML(data).querySelector("featureMember").querySelector("ID").textContent;
或者将 $.parseXML()
的结果传递给 jQuery()
并使用 .find()
$($.parseXML(data)).find("featureMember").find("ID").text();
jsfiddle https://jsfiddle.net/5fuLquth/
关于javascript - jquery突然停止解析xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45648041/