2017-01-17 18 views
1

我有一個XML,當我解析它並嘗試獲取節點值時,它在Firefox和Chrome中正常工作,但在IE中無法正常工作。請建議。XML解析節點值在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中給出錯誤。

回答

2

使用下面的代碼,它可以在IE和其他瀏覽器中使用。

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);

+0

謝謝..它的工作對我來說...一個更多的幫助,如果你能做到。如果我必須檢查xml中是否存在節點名稱「代碼」,那麼我應該怎麼做才能找出值。 –

+0

@AbhinavParashar,我已經編輯了你在評論 中說的答案,檢查標籤是否存在,然後獲取值,否則值將爲空字符串 –

+0

所以請標記答案已解決✓(留下答案)(如在此圖片中=> [image resolve post](http://i.stack.imgur.com/T8umg.png))謝謝。 –