Java 怎么解析XML命名空间

2019年7月21日19:55:06Java 怎么解析XML命名空间已关闭评论 409 1083字阅读3分36秒

1.简介

Java 怎么解析XML命名空间?——请看下文。

2.示例代码

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


import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;

public class Main {
    public static String XMLNS = "xmlns";

    
    public static String lookupNamespaceURI(Node node) {
        String string = node.getNamespaceURI();
        if (string != null) {
            return string;
        }
        return lookupNamespaceURI(node, node.getPrefix());
    }

    public static String lookupNamespaceURI(Node node, Node attr) {
        String string = attr.getNamespaceURI();
        if (string != null) {
            return string;
        }
        return lookupNamespaceURI(node, attr.getPrefix());
    }

    public static String lookupNamespaceURI(Node node, String prefix) {
        NamedNodeMap map = node.getAttributes();
        if (map != null && map.getLength() > 0) {
            for (int i = 0; i < map.getLength(); i++) {
                Node attr = map.item(i);
                String name = attr.getNodeName();
                if (name.startsWith(XMLNS)) {
                    int index = name.indexOf(':');
                    if (index == -1 || prefix == null) {
                        if (index == -1 && prefix == null) {
                            return attr.getNodeValue();
                        }
                        continue;
                    }
                    String prefixName = name.substring(index + 1);
                    if (prefix.equals(prefixName)) {
                        return attr.getNodeValue();
                    }
                }
            }
        }

        Node nodeParent = node.getParentNode();
        if (nodeParent != null) {
            return lookupNamespaceURI(nodeParent, prefix);
        }
        return null;
    }
}

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