对XML DOM对象感到困惑

时间:2014-01-03 04:27:27

标签: javascript xml dom xmlhttprequest

我使用以下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,但这对我来说没有任何意义:(

1 个答案:

答案 0 :(得分:1)

这是因为格式化的xml中的格式化字符(空格,换行符等)。一切都被视为一个节点。任何连续的空白区域都成为文本节点。您可以使用children代替childNodes。孩子们不会包含文字节点。

xmlDoc.getElementsByTagName("DesignPatterns")[0].children[0].nodeName