Java 怎么检查给定节点列表中的任何节点是否是另一个XML节点的祖先

2019年8月7日21:01:23Java 怎么检查给定节点列表中的任何节点是否是另一个XML节点的祖先已关闭评论 268 626字阅读2分5秒

1.简介

Java 怎么检查给定节点列表中的任何节点是否是另一个XML节点的祖先?——请看下文。

2.示例代码

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



import java.util.ArrayList;

import org.w3c.dom.Node;

public class Main {
    
    public static boolean isAnyNodeAncestorOf(ArrayList ancestorNodes,
            Node node) {
        int n = ancestorNodes.size();
        for (int i = 0; i < n; i++) {
            Node ancestor = (Node) ancestorNodes.get(i);
            if (isAncestorOf(ancestor, node)) {
                return true;
            }
        }
        return false;
    }

    
    public static boolean isAncestorOf(Node node, Node descendant) {
        if (node == null || descendant == null) {
            return false;
        }
        for (Node currentNode = descendant.getParentNode(); currentNode != null; currentNode = currentNode
                .getParentNode()) {
            if (currentNode == node) {
                return true;
            }
        }
        return false;
    }
}