我正在使用 JavaScript 将 XML 文件写入 HTML 文件。
这是我正在使用的 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 或 ""?为什么会坏?
最佳答案
它正在中断,因为元素是空的。它没有任何 child ,所以当您尝试获取第一个 child 的 nodeValue
时,它会出错,因为 undefined
没有 0
属性(property)。
你想要的是:
var dataNodes, value;
dataNodes = x.getElementsByTagName("tagChild")[0].childNodes;
if (dataNodes.length) {
value = dataNodes[0].nodeValue;
} else {
value = 0;
}
document.write(value);
关于JavaScript 在读取 XML 中的自闭合标记时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9826531/