Jquery突然停止解析xml

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

示例xml:

    15    

示例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

   TEST  

和JS:

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

现在返回:“”,返回之前:“TEST”

编辑2:

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

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

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/

以这种方式使用jQuery解析XML有一些浏览器兼容性错误我相信。 这是以前won't fix jquery bug

当xml中有namespaces时,您可以通过转义冒号来使用如下所示的jquery选择器:

 .find('gml\\:featureMember') 

或使用nodeName

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

见下面的演示:

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