Java 怎么构造对所提供节点的xpath查询

2019年7月29日20:55:23Java 怎么构造对所提供节点的xpath查询已关闭评论 427 846字阅读2分49秒

1.简介

Java 怎么构造对所提供节点的xpath查询?——请看下文。

2.示例代码

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

 

import java.util.ArrayList;
import java.util.Iterator;
import org.w3c.dom.Node;

public class Main {
    
    public static String getXPath(Node n) {
        if (null == n) {
            throw new IllegalArgumentException("Invalid node");
        }

        ArrayList<Node> hierarchy = new ArrayList<Node>();
        StringBuffer buffer = new StringBuffer();
        Node parent = null;

        
        hierarchy.add(n);
        parent = n.getParentNode();
        while (parent != null && parent.getNodeType() != Node.DOCUMENT_NODE) {
            hierarchy.add(0, parent);
            parent = parent.getParentNode();
        }

        Iterator<Node> i = hierarchy.iterator();
        while (i.hasNext()) {
            Node node = i.next();
            buffer.append("/");
            buffer.append(node.getNodeName());
            if (node.hasAttributes()) {
                Node uuid = node.getAttributes().getNamedItem("uuid");
                if (uuid != null) {
                    buffer.append("[@uuid='");
                    buffer.append(uuid.getNodeValue());
                    buffer.append("']");
                }
            }
        }

        
        return buffer.toString();
    }
}

 
继续阅读
编程十万个怎么办