在JavaScript中通过其节点的名称导航元素

时间:2013-11-20 15:07:05

标签: javascript xml nodes

我有一个像这样的XML

[...]
<element>
  <nodeA></nodeA>
  <nodeB></nodeB>
</element>

<element>
  <nodeC></nodeC>
  <nodeA></nodeA>
</element>
[...]

正如您所看到的,节点不是必需的,它们可以以不同的顺序出现,因此我无法通过索引访问它们作为元素的子节点。我知道我可以使用一个循环来检查元素的子节点的名称,然后用一个开关来保存它们但是我想知道是否有更简单的方法来实现这个,因为我有大量的元素,它需要一段时间来检查他们所有的子节点。我不能使用自定义对象,因为我必须将所有节点的内容作为有序数组传递给泛型函数。

如果您需要了解其他内容,请与我们联系。提前谢谢。

修改 我正在制作一个由五个子节点组成的五个对象组成的数组。我必须为缺少的那些设置默认值。子节点永远不会有子节点。最复杂的元素是:

<element>
  <nodeA></nodeA>
  <nodeB></nodeB>
  <nodeC></nodeC>
  <nodeD></nodeD>
  <nodeE></nodeE>
</element>

1 个答案:

答案 0 :(得分:1)

感谢@Tomalak。这是结果代码:

var xmlDocument = loadXMLDocument("xml_file.xml");

function xmlReadAttribute(attributeName, index) {
    var attribute = xmlDocument.getElementsByTagName('Series')[index].getElementsByTagName(attributeName)[0];
    if (attribute !== undefined) return attribute.textContent;
    return '';
}