java xml转map工具 开源_Java-map 转 xml

虽然也有xml的框架,比如Xstream,但是需要花一点时间去学习,这个源码可以临时应急,出成绩很快,日后花时间用框架或者工具类把代码规范。还是很不错的。

public static byte[] callMapToXML(Map map) {

logger.info("将Map转成Xml, Map:" + map.toString());

StringBuffer sb = new StringBuffer();

sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");

mapToXMLTest2(map, sb);

sb.append("");

logger.info("将Map转成Xml, Xml:" + sb.toString());

try {

return sb.toString().getBytes("UTF-8");

} catch (Exception e) {

logger.error(e);

}

return null;

}

private static void mapToXMLTest2(Map map, StringBuffer sb) {

Set set = map.keySet();

for (Iterator it = set.iterator(); it.hasNext();) {

String key = (String) it.next();

Object value = map.get(key);

if (null == value)

value = "";

if (value.getClass().getName().equals("java.util.ArrayList")) {

ArrayList list = (ArrayList) map.get(key);

sb.append("");

for (int i = 0; i < list.size(); i++) {

HashMap hm = (HashMap) list.get(i);

mapToXMLTest2(hm, sb);

}

sb.append("" + key + ">");

} else {

if (value instanceof HashMap) {

sb.append("");

mapToXMLTest2((HashMap) value, sb);

sb.append("" + key + ">");

} else {

sb.append("" + value + "" + key + ">");

}

}

}

}

运行:

public static void main(String[] args) {

Map dataMap = new LinkedHashMap(); //默认

dataMap.put("rtnCode", "02");

dataMap.put("rtnMsg", "查询失败");

dataMap.put("idWltCloudDistrict", "专区id");

Map bizMap = new LinkedHashMap();

bizMap.put("serviceId", "serviceId001");

bizMap.put("data", dataMap);//data节点是一个map

Map objMap = new LinkedHashMap();

objMap.put("idWltCloudDistrict", "专区id");

objMap.put("districtName", "专区名称");

objMap.put("validateDateStart", "专区有效期开始");

objMap.put("validateDateEnd", "专区有效期结束");

objMap.put("status", "专区状态(00-待发布;01-销售中; 02-已下架;)");

objMap.put("partnerId", "合作伙伴id");

objMap.put("channelId", "渠道id");

objMap.put("areaId", "商圈专区id");

dataMap.putAll(objMap); //

List> prodKindList1 = new ArrayList>();

for(int i=1;i<=2;i++){

// 第二层

List> prodKindList2 = new ArrayList>();

for(int j=1;j<=2;j++){

Map prodKindObj2 = new LinkedHashMap();

prodKindObj2.put("idWltCloudProdKind", "类目ID");

prodKindObj2.put("prodKindName", "类目名称");

prodKindObj2.put("prodKindIdx", "类目序号");

Map prodKind2 = new LinkedHashMap();

prodKind2.put("prodKind", prodKindObj2);

prodKindList2.add(prodKind2);

}

//第一层

Map prodKindOjb1 = new LinkedHashMap();

prodKindOjb1.put("idWltCloudProdKind", "类目ID");

prodKindOjb1.put("prodKindName", "类目名称");

prodKindOjb1.put("prodKindIdx", "类目序号");

prodKindOjb1.put("prodKindList", prodKindList2);

Map prodKind1 = new LinkedHashMap();

prodKind1.put("prodKind", prodKindOjb1);

prodKindList1.add(prodKind1);

}

dataMap.put("prodKindList", prodKindList1);

XmlCommonUtil.callMapToXML(bizMap);

}

实现:

serviceId001

02

查询失败

专区id

专区名称

专区有效期开始

专区有效期结束

专区状态(00-待发布;01-销售中; 02-已下架;)

合作伙伴id

渠道id

商圈专区id

类目ID

类目名称

类目序号

类目ID

类目名称

类目序号

类目ID

类目名称

类目序号

类目ID

类目名称

类目序号

类目ID

类目名称

类目序号

类目ID

类目名称

类目序号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值