Java xml和map,list格式的转换-摘抄
- import java.io.ByteArrayOutputStream;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import java.util.TreeMap;
- import net.sf.json.JSON;
- import net.sf.json.JSONSerializer;
- import net.sf.json.xml.XMLSerializer;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import org.dom4j.io.OutputFormat;
- import org.dom4j.io.XMLWriter;
- /**
- * common xml conver utility
- *
- * @author viruscodecn@gmail.com
- * @version Framework 2010.10.26
- * @url http://blog.csdn.net/arjick/article/details/6251777
- */
- public class XmlConverUtil {
- /**
- * map to xml xml <node><key label="key1">value1</key><key
- * label="key2">value2</key>......</node>
- *
- * @param map
- * @return
- */
- public static String maptoXml(Map map) {
- Document document = DocumentHelper.createDocument();
- Element nodeElement = document.addElement("node");
- for (Object obj : map.keySet()) {
- Element keyElement = nodeElement.addElement("key");
- keyElement.addAttribute("label", String.valueOf(obj));
- keyElement.setText(String.valueOf(map.get(obj)));
- }
- return doc2String(document);
- }
- /**
- * list to xml xml <nodes><node><key label="key1">value1</key><key
- * label="key2">value2</key>......</node><node><key
- * label="key1">value1</key><key
- * label="key2">value2</key>......</node></nodes>
- *
- * @param list
- * @return
- */
- public static String listtoXml(List list) throws Exception {
- Document document = DocumentHelper.createDocument();
- Element nodesElement = document.addElement("nodes");
- int i = 0;
- for (Object o : list) {
- Element nodeElement = nodesElement.addElement("node");
- if (o instanceof Map) {
- for (Object obj : ((Map) o).keySet()) {
- Element keyElement = nodeElement.addElement("key");
- keyElement.addAttribute("label", String.valueOf(obj));
- keyElement.setText(String.valueOf(((Map) o).get(obj)));
- }
- } else {
- Element keyElement = nodeElement.addElement("key");
- keyElement.addAttribute("label", String.valueOf(i));
- keyElement.setText(String.valueOf(o));
- }
- i++;
- }
- return doc2String(document);
- }
- /**
- * json to xml {"node":{"key":{"@label":"key1","#text":"value1"}}} conver
- * <o><node class="object"><key class="object"
- * label="key1">value1</key></node></o>
- *
- * @param json
- * @return
- */
- public static String jsontoXml(String json) {
- try {
- XMLSerializer serializer = new XMLSerializer();
- JSON jsonObject = JSONSerializer.toJSON(json);
- return serializer.write(jsonObject);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * xml to map xml <node><key label="key1">value1</key><key
- * label="key2">value2</key>......</node>
- *
- * @param xml
- * @return
- */
- public static Map xmltoMap(String xml) {
- try {
- Map map = new HashMap();
- Document document = DocumentHelper.parseText(xml);
- Element nodeElement = document.getRootElement();
- List node = nodeElement.elements();
- for (Iterator it = node.iterator(); it.hasNext();) {
- Element elm = (Element) it.next();
- System.out.println(elm.toString());
- map.put(elm.getName(), elm.getText());
- elm = null;
- }
- node = null;
- nodeElement = null;
- document = null;
- return map;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * xml to map xml <node><key label="key1">value1</key><key
- * label="key2">value2</key>......</node>
- * @param xml
- * @param sortBoolean 是否排序
- * @作者 廖正瀚
- * @return
- * @throws Exception
- */
- public static Map<String,String> xmlToMap(String xml, boolean sortBoolean) throws Exception {
- Map<String, String> map;
- if (sortBoolean) {
- map = new TreeMap<String, String>();
- } else {
- map = new HashMap<String, String>();
- }
- Document document = DocumentHelper.parseText(xml);
- Element nodeElement = document.getRootElement();
- @SuppressWarnings("rawtypes")
- Iterator it = nodeElement.elements().iterator();
- while ( it.hasNext()) {
- Element elm = (Element) it.next();
- System.out.println(elm.toString());
- map.put(elm.getName(), elm.getText());
- elm = null;
- }
- return map;
- }
- /**
- * xml to list xml <nodes><node><key label="key1">value1</key><key
- * label="key2">value2</key>......</node><node><key
- * label="key1">value1</key><key
- * label="key2">value2</key>......</node></nodes>
- *
- * @param xml
- * @return
- */
- public static List xmltoList(String xml) {
- try {
- List<Map> list = new ArrayList<Map>();
- Document document = DocumentHelper.parseText(xml);
- Element nodesElement = document.getRootElement();
- List nodes = nodesElement.elements();
- for (Iterator its = nodes.iterator(); its.hasNext();) {
- Element nodeElement = (Element) its.next();
- Map map = xmltoMap(nodeElement.asXML());
- list.add(map);
- map = null;
- }
- nodes = null;
- nodesElement = null;
- document = null;
- return list;
- } catch (Exception e) {
- e.printStackTrace();
- }
- return null;
- }
- /**
- * xml to json <node><key label="key1">value1</key></node> 转化为
- * {"key":{"@label":"key1","#text":"value1"}}
- *
- * @param xml
- * @return
- */
- public static String xmltoJson(String xml) {
- XMLSerializer xmlSerializer = new XMLSerializer();
- return xmlSerializer.read(xml).toString();
- }
- /**
- *
- * @param document
- * @return
- */
- public static String doc2String(Document document) {
- String s = "";
- try {
- // 使用输出流来进行转化
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- // 使用UTF-8编码
- OutputFormat format = new OutputFormat(" ", true, "UTF-8");
- XMLWriter writer = new XMLWriter(out, format);
- writer.write(document);
- s = out.toString("UTF-8");
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- return s;
- }
- }
Java xml和map,list格式的转换-摘抄的更多相关文章
- XML转换为Map通用算法实现 Java版本(Stax实现)
目前项目中需要将XML转换为Map,下面给出了自己的代码实现. 后续将为大家提供Dom版本的实现. 请各路大神给予各种优良实现. 场景: 在项目中需要解析XML文本字符串,需要将XML文本字符串映射为 ...
- java中 json和bean list map之间的互相转换总结
JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib] 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...
- JAVA,NET RSA密钥格式转换
JAVA和NET RSA密钥格式相互转换(公钥,私钥) 做了一个小项目遇到java和.net非对称加密问题,java的公钥和私钥就直接是一个字符串的形式展示的,但是.net是以xml简单包裹形式展示的 ...
- Java工具类——通过配置XML验证Map
Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...
- Java的xml与map,与Bean互转
xml与map互转,主要使用dom4j import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j. ...
- 字符串对象跟xml格式的转换
package com.sunshen.jfids.testWebService.task; import java.io.File; import java.io.StringWriter; imp ...
- map 转换 xml ; xml转map
public class MessageKit { public static String map2xml(Map<String, String> map) throws IOExcep ...
- 分享非常有用的Java程序 (关键代码)(五)---把 Array 转换成 Map
原文:分享非常有用的Java程序 (关键代码)(五)---把 Array 转换成 Map import java.util.Map; import org.apache.commons.lang.Ar ...
- java json与map互相转换(二)
java json与map互相转换(二) CreationTime--2018年7月16日15点09分 Author:Marydon 1.准备工作 所需jar包: commons-beanutil ...
随机推荐
- Oracle的查询-多表查询中的一些概念
--笛卡尔积 select * from emp e,dept d; --等值连接 select * from emp e,dept d where e.deptno=d.deptno --内连接 s ...
- SQLite进阶-14.子查询
目录 子查询 SELECT语句中的子查询 INSERT语句中的子查询 UPDATE语句中的子查询 DELETE语句中的子查询 子查询 子查询或内部查询或嵌套查询是在另一个SQLite查询内嵌入在WHE ...
- MySQL中的InnoDB中产生的死锁深究
查考地址:https://blog.csdn.net/loophome/article/details/79867174 待研究中.....
- 【AtCoder】M-SOLUTIONS Programming Contest
M-SOLUTIONS Programming Contest A - Sum of Interior Angles #include <bits/stdc++.h> #define fi ...
- Reactor 线程模型以及在netty中的应用
这里我们需要理解的一点是Reactor线程模型是基于同步非阻塞IO实现的.对于异步非阻塞IO的实现是Proactor模型. 一 Reactor 单线程模型 Reactor单线程模型就是指所有的IO操作 ...
- Java 抽象类详解
在<Java中的抽象方法和接口>中,介绍了抽象方法与接口,以及做了简单的比较. 这里我想详细探讨下抽象类. 一.抽象类的定义 被关键字“abstract”修饰的类,为抽象类.(而且,abx ...
- linux实现一个定时任务
设置定时任务删除logs脚本数据 编写脚本 touch cleanLogs.sh #! /bin/sh -name "*.log*" -exec rm -f {} \; 使用r ...
- 我的第一个python web开发框架(2)——第一个Hello World
小白中午听完老菜讲的那些话后一直在思考,可想来想去还是一头雾水,晕晕呼呼的一知半解,到最后还是想不明白,心想:老大讲的太高深了,只能听懂一半半,看来只能先记下来,将明白的先做,不明白的等以后遇到再学. ...
- django websocket 实现后台日志在web端展示(+前端vue设置)
核心代码: @accept_websocket def get_log(req): if req.is_websocket(): print('收到websocket请求') with open(se ...
- request.getScheme() 使用方法(转)
今天在看代码时,发现程序使用了 request.getScheme() .不明白是什么意思,查了一下.结果整理如下: 1.request.getScheme() 返回当前链接使用的协议:一般应用返回h ...