xmlattributefinder.java

来自「esri的ArcGIS Server超级学习模板程序(for java)」· Java 代码 · 共 60 行

JAVA
60
字号
package com.esri.solutions.jitk.datasources.ogc.wms;

import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class XMLAttributeFinder {
	private static Logger _logger = LogManager.getLogger(XMLAttributeFinder.class.getName());
	
	public XMLAttributeFinder() {
	}
	
    public String findAttribute(String name, String attrName, Node node) {
        try {
            if (node.getNodeType() != Node.ELEMENT_NODE) {
                _logger.error("Error: Search node not of element type");
            }

            if (!node.hasChildNodes()) {
                return "";
            }

            NodeList list = node.getChildNodes();

            for (int i = list.getLength() - 1; i >= 0; i--) {
                Node subnode = list.item(i);

                if (subnode.getNodeType() == Node.ELEMENT_NODE) {
                    if (subnode.getNodeName().equals(name)) {
                        if (attrName != null) {
                            NamedNodeMap namedNodeMap = subnode.getAttributes();

                            if (namedNodeMap.getNamedItem(attrName) != null) {
                                return namedNodeMap.getNamedItem(attrName)
                                                   .getNodeValue();
                            }
                        } 
                        else {
                            return subnode.getNodeValue();
                        }
                    }

                    String url = findAttribute(name, attrName, subnode);

                    if (url.length() > 0) {
                        return url;
                    }
                }
            }
        } 
        catch (Exception e) {
        	_logger.warn("unable to find attribute", e);
        }

        return "";
    }   	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?