2012-03-22 101 views
1

我正在使用JavaScript將XML文件寫入HTML文件。在XML中讀取自我關閉標記時JavaScript會中斷

這裏是我使用JavaScript:

if(window.XMLHttpRequest){ 
    xmlhttp=new XMLHttpRequest(); 
} 
else{ 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.open("GET","file.xml",false); 
xmlhttp.send(); 
xmlDoc=xmlhttp.responseXML; 

var x=xmlDoc.getElementsByTagName("tagParent"); 

document.write(x.getElementsByTagName("tagChild")[0].childNodes[0].nodeValue); 

該腳本會爲一切工作,除了自行閉合的XML元素(<element/>)。

示例XML文件:當它達到一種自行閉合標籤

<?xml version="1.0" encoding="ISO-8859-1"?> 
<tagParent> 
    <tagChild/> 
</tagParent> 

該腳本休息並停止。

我需要做些什麼才能讓它輸出0或「」?爲什麼它破裂?

回答

2

由於元素爲空而已中斷。它沒有任何孩子,所以當您嘗試獲取第一個孩子的nodeValue時,它會發生錯誤,因爲undefined沒有0屬性。

你想沿着線的東西:

var dataNodes, value; 
dataNodes = x.getElementsByTagName("tagChild")[0].childNodes; 
if (dataNodes.length) { 
    value = dataNodes[0].nodeValue; 
} else { 
    value = 0; 
} 
document.write(value); 
+0

什麼是我可以用它來解決這個問題的邏輯。我試過這段代碼,但它不起作用:'if(x.getElementsByTagName(「tagChild」)。parentNode!== null){' – Daniel 2012-03-22 16:40:10

+0

謝謝,它完美的工作! – Daniel 2012-03-22 16:47:18

相關問題