XML工具类

 

 

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;

}

}


你可能感兴趣的:(解析XML指定节点)