XML解析在Chrome中不起作用
XML Parsing not Working in Chrome
对于XML字符串,例如:
var xml_string = '<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body> <dn:response id="?" xmlns:dn="http://www.datanomic.com/ws"> <dn:record> <dn:Result>John</dn:Result> </dn:record> <dn:record> <dn:Result>Johnghghg</dn:Result> </dn:record> <dn:record> <dn:Result>Johnn</dn:Result> </dn:record> <dn:record> <dn:Result>Johnngy</dn:Result> </dn:record> <dn:record> <dn:Result>Johnnnn</dn:Result> </dn:record> <dn:record> <dn:Result>Johnny</dn:Result> </dn:record> <dn:record> <dn:Result>Johns</dn:Result> </dn:record> <dn:record> <dn:Result>Johnson</dn:Result> </dn:record> <dn:record> <dn:Result>Johnston</dn:Result> </dn:record> </dn:response> </env:Body></env:Envelope>';
我正在使用以下代码(从SO本身获得)
if (window.DOMParser)
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(xml_string,"text/xml");
}
else // Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.loadXML(xml_string);
}
var nodes = xmlDoc.getElementsByTagName("dn:Result");
console.log(nodes); // returning empty on Chrome, working fine in Firefox and IE10
如果我从getElementsByTagName
中删除dn:
,它就可以在Chrome中工作,但不能在Firefox和IE中工作浏览器?
以下是易于测试的小提琴:JSFiddle
附言:jQuery不是一个选项。我希望这可以通过简单的旧Javascript单独完成。
我建议在可用的情况下使用W3C DOM Level 2方法getElementsByTagNameNS
,请参阅http://jsfiddle.net/bygx406g/,将一行更改为
var nodes = typeof xmlDoc.getElementsByTagNameNS != 'undefined' ? xmlDoc.getElementsByTagNameNS('http://www.datanomic.com/ws', 'Result') : xmlDoc.getElementsByTagName("dn:Result");
相关文章:
- XMLHttpRequest在移动设备上的chrome上不起作用
- ng disabled在chrome中不起作用.按钮在角度上未禁用
- 鼠标输入在 YUI 的 chrome 中不起作用
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- HTML5视频链接在Chrome中不起作用
- jQuery克隆函数在chrome中不起作用
- jQuery place attr src在Chrome中不起作用
- chrome中的onmouseover(下拉选项标记)事件不起作用-php,javascript
- .ajax调用在chrome中不起作用
- Javascript/AAJAX在Opera中不起作用,在FF/IE/Chrome中完美工作
- 正在处理在chrome扩展中不起作用的js
- MediaSource API demo不起作用(Chrome)
- Chrome 中表格的 CSV 导出不起作用 - JavaScript/AngularJS
- $.getJSON 在 Chrome 和 Safari 中不起作用
- OnClick 事件在 Chrome 中不起作用
- getUserMedia 在 Chrome v50.0.2661.86 上不起作用
- dataTransfer.set拖放的数据在chrome中不起作用
- 简单的鼠标悬停在 Chrome 中不起作用
- window.close();在Chrome和Firefox中不起作用
- SoundCloud widget .play() 方法在选项卡在后台时不起作用 (Chrome)