xml读取
package com.pjf.common.xml; import java.io.ByteArrayInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.LinkedList; import java.util.List; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class XmlReader { public static Document loadCfgFile(String cfgFile) { InputStream is; try { is = new FileInputStream(cfgFile); } catch (FileNotFoundException e1) { error("Can't open configuration file.",e1); throw new IllegalArgumentException("Parse xml config file error."); } return loadCfgByInputStream(is); } public static Document loadCfgString(String strXml) { return loadCfgByInputStream(new ByteArrayInputStream(strXml.getBytes())); } private static Document loadCfgByInputStream(InputStream is) { Document dom = null; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); dom = db.parse(is); } catch (IOException ioe) { error("Can't open configuration file.",ioe); throw new Error("Parse xml config file error."); } catch (Throwable t) { error("Parse xml config file error.",t); throw new Error("Parse xml config file error."); } finally { try { is.close(); } catch (IOException e) { throw new Error("Close error."); } } return dom; }
public static Boolean getNodeTextContentBoolean(Element element,String nodeName) { Element node = getChildElement(element,nodeName); return node == null ? null : Boolean.parseBoolean(node.getTextContent()); }
public static Long getNodeTextContentLong(Element element,nodeName); return node == null ? null : Long.parseLong(node.getTextContent()); }
public static Integer getNodeTextContentInteger(Element element,nodeName); return node == null ? null : Integer.parseInt(node.getTextContent()); }
public static String getNodeTextContent(Element element,nodeName); return node == null ? null : node.getTextContent(); } public static Boolean getNodeAttributeBoolean(Element elem,String nodeName,String attrName) { String attrValue = getNodeAttribute(elem,nodeName,attrName); return attrValue == null ? null : Boolean.parseBoolean(attrValue); } public static Long getNodeAttributeLong(Element elem,attrName); return attrValue == null ? null : Long.parseLong(attrValue); } public static Integer getNodeAttributeInteger(Element elem,attrName); return attrValue == null ? null : Integer.parseInt(attrValue); } public static String getNodeAttribute(Element elem,String attrName) { Element ele = getChildElement(elem,nodeName); if (ele == null) { return null; } return ele.getAttribute(attrName); } public static Element getChildElement(Element elem,String nodeName) { NodeList nl = elem.getChildNodes(); for (int index = 0; index < nl.getLength(); index++) { Node node = nl.item(index); if (node.getNodeType() == Node.ELEMENT_NODE && node.getNodeName().equals(nodeName)) { return (Element) node; } } return null; } public static List<Element> getChildElements(Element elem) { NodeList nl = elem.getChildNodes(); List<Element> eleList = new LinkedList<Element>(); for (int index = 0; index < nl.getLength(); index++) { Node node = nl.item(index); if (node.getNodeType() == Node.ELEMENT_NODE) { eleList.add((Element) node); } } return eleList; } public static List<Element> getChildElements(Element elem,String nodeName) { NodeList nl = elem.getChildNodes(); List<Element> eleList = new LinkedList<Element>(); for (int index = 0; index < nl.getLength(); index++) { Node node = nl.item(index); if (node.getNodeType() == Node.ELEMENT_NODE && node.getNodeName().equals(nodeName)) { eleList.add((Element) node); } } return eleList; } private static void error(String msg,Throwable t) { System.err.println(msg); t.printStackTrace(System.err); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |