java知识点:dom4j 由map转字符串
2015-02-27 19:47
323 查看
map.toString()是这样子的~
{welcome-file-list={welcome-file=[index.html, {a=[{b=[{c=[c1c1c1c1c1c1, c2c2c2c2c2c2]}, b2b2b2b2]}, 22222, 33333]}, index.jsp, default.html, default.htm, default.jsp]}, display-name=ask-ssh, context-param={param-value=classpath:applicationContext.xml, param-name=contextConfigLocation},
filter-mapping={url-pattern=/*, filter-name=struts2}, listener={listener-class=org.springframework.web.context.ContextLoaderListener}, filter={filter-class=org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter, filter-name=struts2}}
观察发现,由map 套 list 套 map
思路:
遍历map
判断 value 是否是一个Map
判断 value 是否是一个List
判断List中是否有Map
递归
需要注意的是:在每个循环开始和结尾都需要加上 sb.append("<" + key + ">"); sb.append("</" + key + ">");
而中间是否要放值,取决于你是Map?是List?是String? 只有String才放值
{welcome-file-list={welcome-file=[index.html, {a=[{b=[{c=[c1c1c1c1c1c1, c2c2c2c2c2c2]}, b2b2b2b2]}, 22222, 33333]}, index.jsp, default.html, default.htm, default.jsp]}, display-name=ask-ssh, context-param={param-value=classpath:applicationContext.xml, param-name=contextConfigLocation},
filter-mapping={url-pattern=/*, filter-name=struts2}, listener={listener-class=org.springframework.web.context.ContextLoaderListener}, filter={filter-class=org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter, filter-name=struts2}}
观察发现,由map 套 list 套 map
思路:
遍历map
判断 value 是否是一个Map
判断 value 是否是一个List
判断List中是否有Map
递归
需要注意的是:在每个循环开始和结尾都需要加上 sb.append("<" + key + ">"); sb.append("</" + key + ">");
而中间是否要放值,取决于你是Map?是List?是String? 只有String才放值
public static String map2Dom(Map<String, Object> map) { // iterator法,遍历map Iterator keyIterator = map.keySet().iterator(); StringBuffer sb = new StringBuffer(); while (keyIterator.hasNext()) { String key = (String) keyIterator.next(); Object value = map.get(key); // 如果value是map则调用map2Dom if ("java.util.HashMap".equals(value.getClass().getName())) { mapAppend(sb, key, value); } else { // 不是map,判断是否是list if ("java.util.ArrayList".equals(value.getClass().getName())) { for (Object tmpObject : (List) value) { // 如果是map,则调用map2Dom // 此时就变成一开始的样子了`~~ if ("java.util.HashMap".equals(tmpObject.getClass() .getName())) { mapAppend(sb, key, tmpObject); } else { // "java.lang.String" stringAppend(sb, key, tmpObject); } } } else { stringAppend(sb, key, value); } } } return sb.toString(); } private static void stringAppend(StringBuffer sb, String key, Object tmpObject) { sb.append("<" + key + ">"); sb.append(tmpObject); sb.append("</" + key + ">"); } private static void mapAppend(StringBuffer sb, String key, Object tmpObject) { sb.append("<" + key + ">"); sb.append(map2Dom((Map<String, Object>) tmpObject)); sb.append("</" + key + ">"); }
相关文章推荐
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- Map特性,计算字符串内重复元素的个数(Java版)--之一
- java解析xml字符串(用dom4j)
- [每天一个知识点]14-Java语言-字符串拼接
- JAVA使用Dom4j实现字符串和xml文件相互转换
- java知识点汇总之十字符串
- java json字符串转List、Map等对象
- java怎么将json字符串转换成list,map,object等
- JAVA使用Dom4j实现字符串和xml文件相互转换
- JAVA Map、List、Object转换后的JSON字符串
- Map实现字符串内重复字符数的计算(Java之二)
- JAVA array,map 转 json 字符串
- JAVA dom4j 解析XML格式的字符串
- java中将jsonObject字符串转化为Map对象
- JAVA array,map 转 json 字符串
- java通过dom4j解析xml字符串的实例
- java dom4j 解析xml字符串的操作实例
- java Map输出字符串中字母出现的次数
- JSON字符串转javabean-net.sf.ezmorph.bean.MorphDynaBean cannot be cast to java.util.Map
- 【java编程】Map集合之TreeMap字符串中字符出现次数