在XML中读取自我关闭标记时JavaScript会中断
问题描述:
我正在使用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或“”?为什么它破裂?
答
由于元素为空而已中断。它没有任何孩子,所以当您尝试获取第一个孩子的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);
什么是我可以用它来解决这个问题的逻辑。我试过这段代码,但它不起作用:'if(x.getElementsByTagName(“tagChild”)。parentNode!== null){' – Daniel 2012-03-22 16:40:10
谢谢,它完美的工作! – Daniel 2012-03-22 16:47:18