package com.cn.util;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
* XML解析
*/
public class XMlUtil {
public static void main(String[] args) throws Throwable {
String reString = XMlUtil.getXmlString("G:\\XMLFile1.xml");
List<Map<String, Object>> list = (List<Map<String, Object>>) XMlUtil.readXMLByString(reString,"datalist/data/bill_base");
for (Map<String, Object> map : list) {
System.out.println(map.get("bill_uuid"));
}
}
/**
* 节点解析
* @return List<Map<String, Object>>
* @param XML格式的字符串
* @throws Throwable
*/
@SuppressWarnings("unchecked")
public static List<?> readXMLByString(String xmlStr,String node) throws Throwable {
List<Map<String, Object>> result = new ArrayList<Map<String,Object>>();
Map<String, Object> map = new HashMap<String, Object>();
try {
Element root =DocumentHelper.parseText(xmlStr).getRootElement();
List list = root.selectNodes(node);
for (int i = 0; i < list.size(); i++) {
Element ele = (Element)list.get(i);
for ( Iterator j = ele.elementIterator(); j.hasNext(); ) {
Element el = (Element) j.next();
map.put(el.getName(), el.getText());
}
}
result.add(map);
} catch (Exception e) {
throw e;
}
return result;
}
/**
* 节点解析
* @return List<Map<String, Object>>
* @param XML文件路径
* @throws Throwable
*/
@SuppressWarnings("unchecked")
public static List<?> readXMLByFilePath(String path,String node) throws Throwable {
List<Map<String, Object>> result = new ArrayList<Map<String,Object>>();
Map<String, Object> map = new HashMap<String, Object>();
try {
Document document = getXmlDocument(path);
Element root = document.getRootElement();
List list = root.selectNodes(node);
for (int i = 0; i < list.size(); i++) {
Element ele = (Element)list.get(i);
for ( Iterator j = ele.elementIterator(); j.hasNext(); ) {
Element el = (Element) j.next();
map.put(el.getName(), el.getText());
}
}
result.add(map);
} catch (Exception e) {
throw e;
}
return result;
}
/**
* 读取XML文件转成字符串
* @param 文件路径
* @return 读取的字符串
* @throws Exception
*/
public static String getXmlString(String path) throws Exception {
String result = "";
try {
Document document = getXmlDocument(path);
result = document.asXML();
} catch (Exception e) {
throw e;
}
return result;
}
private static Document getXmlDocument(String path) throws Exception{
Document document = null;
try {
File xmlFile=new File(path);
SAXReader saxReader = new SAXReader();
document = saxReader.read(xmlFile);
} catch (Exception e) {
throw e;
}
return document;
}
}