前端之家收集整理的这篇文章主要介绍了
xml 工具类,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
package com.xyh.weixinpay.util;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import org.dom4j.DocumentHelper;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import com.alibaba.fastjson.JSONObject;
/**
* xml工具类
*
* @author Administrator
*
*/
public class XMLUtil {
/**
* xml 转换 javaBean
*
* @param clazz
* @param xml
* @return
*/
public static Object xmlToBean(Class<?> clazz,String xml) {
try {
JAXBContext jc = JAXBContext.newInstance(clazz);
Unmarshaller us = jc.createUnmarshaller();
return us.unmarshal(new StringReader(xml));
} catch (JAXBException e) {
e.printStackTrace();
return null;
}
}
/**
* xml 转换 json
* @param xml
* @return
* @throws JDOMException
* @throws IOException
*/
public static JSONObject xml2JSON(byte[] xml) throws JDOMException,IOException {
JSONObject json = new JSONObject();
InputStream is = new ByteArrayInputStream(xml);
SAXBuilder sb = new SAXBuilder();
Document doc = sb.build(is);
Element root = doc.getRootElement();
json.put(root.getName(),iterateElement(root));
return json;
}
private static JSONObject iterateElement(Element element) {
List node = element.getChildren();
Element et = null;
JSONObject obj = new JSONObject();
List list = null;
for (int i = 0; i < node.size(); i++) {
list = new LinkedList();
et = (Element) node.get(i);
if (et.getTextTrim().equals("")) {
if (et.getChildren().size() == 0)
continue;
if (obj.containsKey(et.getName())) {
list = (List) obj.get(et.getName());
}
list.add(iterateElement(et));
obj.put(et.getName(),list);
} else {
if (obj.containsKey(et.getName())) {
list = (List) obj.get(et.getName());
}
list.add(et.getTextTrim());
obj.put(et.getName(),list);
}
}
return obj;
}
private static Map<String,String> xml2Map(String xml) {
Map<String,String> map = new HashMap<String,String>();
try {
org.dom4j.Document doc = DocumentHelper.parseText(xml);//将xml转为dom对象
org.dom4j.Element root = doc.getRootElement();//获取根节点
org.dom4j.Element element = root.element("queryRequest");//获取名称为queryRequest的子节点
List<Element> elements = element.elements();//获取这个子节点里面的所有子元素,也可以element.elements("userList")指定获取子元素
for (Object obj : elements) { //遍历子元素
element = (org.dom4j.Element) obj;
map.put(element.getName(),element.getTextTrim());
System.out.print(element.getName()+"--"+element.getTextTrim());
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
}