XML字符转Map工具类的示例代码分享
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class XmlUtils { public static Map<String, Object> Str2Map(String str){ try { // long beginTime = System.currentTimeMillis(); Document doc = DocumentHelper.parseText(str); // System.out.println(doc.asXML()); Map<String, Object> map = XmlUtils.Dom2Map(doc); // System.out.println(map.toString()); // System.out.println("Use time:"+(System.currentTimeMillis()-beginTime)); return map; } catch (DocumentException e) { e.printStackTrace(); } return null; } public static Map<String, Object> Dom2Map(Document doc){ Map<String, Object> map = new HashMap<String, Object>(); if(doc == null) return map; Element root = doc.getRootElement(); for (Iterator iterator = root.elementIterator(); iterator.hasNext();) { Element e = (Element) iterator.next(); List list = e.elements(); if(list.size() > 0){ map.put(e.getName(), Dom2Map(e)); }else map.put(e.getName(), e.getText()); } return map; } @SuppressWarnings("unchecked") public static Map Dom2Map(Element e){ Map map = new HashMap(); List list = e.elements(); if(list.size() > 0){ for (int i = 0;i < list.size(); i++) { Element iter = (Element) list.get(i); List mapList = new ArrayList(); if(iter.elements().size() > 0){ Map m = Dom2Map(iter); if(map.get(iter.getName()) != null){ Object obj = map.get(iter.getName()); if(!obj.getClass().getName().equals("java.util.ArrayList")){ mapList = new ArrayList(); mapList.add(obj); mapList.add(m); } if(obj.getClass().getName().equals("java.util.ArrayList")){ mapList = (List) obj; mapList.add(m); } map.put(iter.getName(), mapList); }else map.put(iter.getName(), m); } else{ if(map.get(iter.getName()) != null){ Object obj = map.get(iter.getName()); if(!obj.getClass().getName().equals("java.util.ArrayList")){ mapList = new ArrayList(); mapList.add(obj); mapList.add(iter.getText()); } if(obj.getClass().getName().equals("java.util.ArrayList")){ mapList = (List) obj; mapList.add(iter.getText()); } map.put(iter.getName(), mapList); }else map.put(iter.getName(), iter.getText()); } } }else map.put(e.getName(), e.getText()); return map; }
以上是XML字符转Map工具类的示例代码分享的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

application.yml定义list集合第一种方式使用@ConfigurationProperties注解获取list集合的所有值type:code:status:-200-300-400-500编写配置文件对应的实体类,这里需要注意的是,定义list集合,先定义一个配置类Bean,然后使用注解@ConfigurationProperties注解来获取list集合值,这里给大家讲解下相关注解的作用@Component将实体类交给Spring管理@ConfigurationPropertie

一、技术背景在实际的项目开发中,我们经常会使用到缓存中间件(如redis、MemCache等)来帮助我们提高系统的可用性和健壮性。但是很多时候如果项目比较简单,就没有必要为了使用缓存而专门引入Redis等等中间件来加重系统的复杂性。那么Java本身有没有好用的轻量级的缓存组件呢。答案当然是有喽,而且方法不止一种。常见的解决方法有:ExpiringMap、LoadingCache及基于HashMap的封装三种。二、技术效果实现缓存的常见功能,如过时删除策略热点数据预热三、ExpiringMap3.

方式1.使用HashtableMaphashtable=newHashtable();这是所有人最先想到的,那为什么它是线程安全的?那就看看它的源码,我们可以看出我们常用的put,get,containsKey等方法都是同步的,所以它是线程安全的publicsynchronizedbooleancontainsKey(Objectkey){Entrytab[]=table;inthash=key.hashCode();intindex=(hash&0x7FFFFFFF)%tab.leng

javabean与map的转换有很多种方式,比如:1、通过ObjectMapper先将bean转换为json,再将json转换为map,但是这种方法比较绕,且效率很低,经测试,循环转换10000个bean,就需要12秒!!!不推荐使用2、通过Java反射,获取bean类的属性和值,再转换到map对应的键值对中,这种方法次之,但稍微有点麻烦3、通过net.sf.cglib.beans.BeanMap类中的方法,这种方式效率极高,它跟第二种方式的区别就是因为使用了缓存,初次创建bean时需要初始化,

优化Go语言map的性能在Go语言中,map是一种非常常用的数据结构,用来存储键值对的集合。然而,在处理大量数据时,map的性能可能受到影响。为了提高map的性能,我们可以采取一些优化措施来减少map操作的时间复杂度,从而提升程序的执行效率。1.预分配map的容量在创建map时,我们可以通过预分配容量来减少map扩容的次数,提高程序的性能。一般情况下,我们

map指令使用ngx_http_map_module模块提供的。默认情况下,nginx有加载这个模块,除非人为的--without-http_map_module。ngx_http_map_module模块可以创建变量,这些变量的值与另外的变量值相关联。允许分类或者同时映射多个值到多个不同值并储存到一个变量中,map指令用来创建变量,但是仅在变量被接受的时候执行视图映射操作,对于处理没有引用变量的请求时,这个模块并没有性能上的缺失。一.ngx_http_map_module模块指令说明map语法

Java开发人员在进行API开发时,往往需要处理各种工具类,这些工具类可以节省开发时间并且提高代码的可复用性。Hutool是一个Java工具类库,提供了丰富的工具类和常用的算法,能够提高API开发的效率。Hutool支持Java8及以上版本,可以方便地用于各种场景,例如字符串处理、日期时间处理、加密解密、文件操作等等,以下就是一些常用的功能。字符串处理Hut

两种方法:1、利用“for range”语句遍历map来获取全部元素,语法“for key, value := range mapName{...}”。2、使用key做为索引的形式来获取指定元素,语法“value, isOk := mapName[key]”;返回两个返回值,第一个返回值是获取的值,如果key不存在,返回空值,第二个参数是一个bool值,表示获取值是否获取成功。
