使用以下功能
var data = [];
function recurseXML(node, path) {
var i, nodes;
if (node.hasChildNodes()) {
nodes = node.childNodes;
path += (path ? "." : "") + node.tagName
if (nodes.length < 2) {
recurseXML(nodes[0], path);
} else {
for (i = 0; i < nodes.length; i += 1) {
recurseXML(nodes[i], path + "[" + i + "]");
}
}
} else {
data.push(path + " " + (node.nodeValue).trim());
}
}
当我尝试遍历XML in this fiddle时,它输出就好像有空节点,但是没有
造成这种情况的原因是什么,我该如何解决?
答案 0 :(得分:0)
问题是我的节点之间的空格会创建一个空文本节点。为了解决这个问题,我在递归遍历XMLDOM之前修剪了节点之间多余空格的xml:
document.body.innerHTML = (document.body.innerHTML).replace(/>\s+</g, '><');