Java 怎么在提供的节点之前计算具有指定标记名的DOM元素节点,而不包括节点本身

2019年7月23日22:57:02Java 怎么在提供的节点之前计算具有指定标记名的DOM元素节点,而不包括节点本身已关闭评论 387 567字阅读1分53秒

1.简介

Java 怎么在提供的节点之前计算具有指定标记名的DOM元素节点,而不包括节点本身?——请看下文。

2.示例代码

/**
 * 版权所有 编程十万个怎么办(www.tah1986.com)
 */


import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class Main {
    
    public static int countElementsBefore(Node node, String tagName) {
        Node parent = node.getParentNode();

        NodeList siblings = parent.getChildNodes();
        int count = 0;
        int siblingCount = siblings.getLength();

        for (int i = 0; i < siblingCount; i++) {
            Node sibling = siblings.item(i);

            if (sibling == node) {
                break;
            }
            if (sibling.getNodeType() == Node.ELEMENT_NODE
                    && ((Element) sibling).getTagName().equals(tagName)) {
                count++;
            }
        }

        return count;
    }
}