xml获取属性javascript不会;无法处理childNodes

xml get attributes javascript doesn't work on childNodes

本文关键字:处理 childNodes 不会 获取 属性 javascript xml      更新时间:2023-09-26

我有以下代码示例,它们试图显示svg映射的d属性(在此处找到)。

// path method
var node = xmlDoc.getElementById('g67');
console.log(node);
for(var i = 0; i < node.getElementsByTagName('path').length; ++i) {
    console.log(node.getElementsByTagName('path')[i].getAttribute('d'));
}

// childNodes method
var node = xmlDoc.getElementById('g67');
console.log(node);
for(var i = 0; i < node.childNodes.length; ++i) {
    console.log(node.childNodes[i].getAttribute('d'));
}

前者有效,后者无效。

我知道我在XMLDOM中的节点概念上出了问题。如有任何帮助,我们将不胜感激。谢谢你。

完整的代码可以在这里找到

childNodes为您提供所有子节点。文本节点、注释、处理说明等等。

您想要检查子类型(名称必须是"路径"):

var node = document.getElementById('g67'), child, i;
console.log(node);
for (i = 0; i < node.childNodes.length; i++) {
    child = node.childNodes[i];
    if (child.nodeName === 'path') {
        console.log(child.getAttribute('d'));
    }
}

还要注意,childNodes只为您提供直接子项,而getElementsByTagName()为您提供所有子项。