我使用以下JavaScript尝试从xml文档中获取节点名称。
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET", "doc.xml", false);
xhttp.send();
xmlDoc = xhttp.responseXML;
alert(xmlDoc.getElementsByTagName("DesignPatterns")[0].childNodes[0].nodeName);
}
XML文档......
<DesignPatterns>
<Composite>Composite</Composite>
</DesignPatterns>
警报正在输出'#text'。我预计它会输出'复合'。为什么会发生这种情况,是否有一些我看不到的隐形和神奇的#text节点?我假设它是我在调试中看到的/ n,但这对我来说没有任何意义:(
答案 0 :(得分:1)
这是因为格式化的xml中的格式化字符(空格,换行符等)。一切都被视为一个节点。任何连续的空白区域都成为文本节点。您可以使用children代替childNodes。孩子们不会包含文字节点。
xmlDoc.getElementsByTagName("DesignPatterns")[0].children[0].nodeName