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

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

}

(编辑:李大同)

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

    推荐文章
      热点阅读