Java 怎么找到标记为“name”的XML子元素并返回其值

2019年8月12日21:23:43Java 怎么找到标记为“name”的XML子元素并返回其值已关闭评论 293 1195字阅读3分59秒

1.简介

Java 怎么找到标记为“name”的XML子元素并返回其值?——请看下文。

2.示例代码

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


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

public class Main {
    
     
    final public static double getSubelementDouble(final Element element,
            final String name) throws Exception {
        return getSubelementDouble(element, name, Double.NaN);
    }

    
    final public static double getSubelementDouble(final Element element,
            final String name, final double default_value) throws Exception {
        final String text = getSubelementString(element, name, "").trim();
        if (text.isEmpty())
            return default_value;
        try {
            return Double.parseDouble(text);
        } catch (NumberFormatException ex) {
            throw new Exception("Invalid number for <" + name + ">", ex);
        }
    }

    
    final public static String getSubelementString(final Element element,
            final String name, final String default_value) {
        if (element == null)
            return default_value;
        Node n = element.getFirstChild();
        n = findFirstElementNode(n, name);
        if (n != null) {
            Node text_node = n.getFirstChild();
            if (text_node == null)
                return default_value;
            return text_node.getNodeValue();
        }
        return default_value;
    }

    
    final public static Element findFirstElementNode(Node node,
            final String name) {
        while (node != null) {
            if (node.getNodeType() == Node.ELEMENT_NODE
                    && node.getNodeName().equals(name))
                return (Element) node;
            node = node.getNextSibling();
        }
        return null;
    }
}

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