xml 工具类
发布时间:2020-12-16 01:51:49 所属栏目:百科 来源:网络整理
导读: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.uti
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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |