Reputation: 649
I have an XML and when I parse it and try to get the node value it works fine in Firefox and Chrome but not in IE. Please suggest .
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;
In Firefox errCode is 0
, whereas it gives an error in IE11.
Upvotes: 2
Views: 2132
Reputation: 14702
Use the below code, it works both in IE and other browsers.
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);
Upvotes: 2