org.w3c.dom.Element获取父级的位置

时间:2013-03-05 11:35:00

标签: java xml

如何在childNode列表中获取Element的位置?

e.g。

<a>
  <b></b><!-- return 0 -->
  <c></c><!-- return 1 -->
</a>

2 个答案:

答案 0 :(得分:2)

我不认为ElementNodeNodeList提供了获取此信息的直接方法,但编写自己的快速功能很容易做到:< / p>

int indexOfNode(Node node) {
    int index;
    Node sibling;

    index = 0;
    while ((sibling = node.getPreviousSibling()) != null) {
        node = sibling;
        ++index;
    }

    return index;
}

答案 1 :(得分:0)

除了重复调用getPreviousSibling()直到它返回null或遍历父节点的子列表,直到找到==时,我才认为这是一种直接的方法。 {1}}到您开始使用的节点。

顺便说一句,在您在问题中提供的文档中,b元素在其父级子级列表中是索引1,而c元素是索引3,因为那里是中间仅有空白的文本节点(开头a和开放b之间的一个,另一个在结束b和开放c之间)。