加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml读取

发布时间:2020-12-16 06:28:35 所属栏目:百科 来源:网络整理
导读: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.Li

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);

}

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读