XML Parse节点值在IE中不起作用

时间:2017-01-17 07:19:52

标签: javascript xml browser

我有一个XML,当我解析它并尝试获取节点值时,它在Firefox和Chrome中运行良好,但在IE中却没有。请建议。

var txt = "<?xml version='1.0' encoding='UTF-8' ?>\n<info>\n<error>\n<code>0</code>\n<name>STATUS_OK</name>\n</error>\n</info>\n";
var errCode = xmlDoc.childNodes[0].childNodes[1].children[0].innerHTML;

在Firefox中,errCode为0,而在IE11中则出错。

1 个答案:

答案 0 :(得分:2)

使用以下代码,它可以在IE和其他浏览器中使用。

&#13;
&#13;
var xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<info>\n<error>\n<code>0</code>\n<name>STATUS_OK</name>\n</error>\n</info>\n";

if (window.DOMParser){
    parser = new DOMParser();
    xml = parser.parseFromString(xmlString, "text/xml");
} else {
    // Internet Explorer
    xml = new ActiveXObject("Microsoft.XMLDOM");
    xml.async = false;
    xml.loadXML(xmlString);
}

//check if tag is present otherwise assign empty string "" ;
var code = (typeof(xml.getElementsByTagName("code")[0]) !== "undefined") ? xml.getElementsByTagName("code")[0].textContent : "";   

//check if tag is present otherwise assign empty string "" ;
var message = (typeof(xml.getElementsByTagName("name")[0]) !== "undefined") ? xml.getElementsByTagName("name")[0].textContent : ""; 

alert("code : "+code+"\nname : "+message);
&#13;
&#13;
&#13;