字符串xml格式转List集合的那些坑

本文介绍了一种将XML字符串转换为Java List集合的方法,通过解析XML文档并将其转化为List<Map<String, Object>>类型,便于进一步的数据处理。文章详细展示了代码实现过程,包括处理XML字符串中的特殊字符和转换字节码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
	 * xml字符串转list集合
	 * @param xml
	 * @return
	 */
	public static List<Map<String,Object>> xmlToList(String xml){
		if(null == xml || "".equals(xml)){
			Logger.getLogger(XmlUtil.class).info("xml为空");
			return null;
		}
		List<Map<String, Object>> list = new ArrayList();
		xml =xml.replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", "").replace("\n","").replace(" ","");;
		SAXReader reader = new SAXReader();
		Document document = null;
		try {
			Logger.getLogger(XmlUtil.class).info(xml);
			document = reader.read(new ByteArrayInputStream(xml.getBytes("utf-8")));
			Element root = document.getRootElement();//获取根元素
	        List<Element> childElements = root.elements();//获取当前元素下的全部子元素
	        
	        
	        for (Element child : childElements) {//循环输出全部信息
	        	Map<String, Object> map = new HashMap();//每个实体
	        	List<Element> infos = child.elements();//每个对象信息
	            for (Element info : infos) {
	                String name = info.getName();//获取当前元素名
	                String text = info.getText();//获取当前元素值
	                map.put(name,text);
	            }
	            list.add(map);
	            map=null;//回收map
	        }
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

这里面有两个关键点:

  1. 字符串空格和行,必须用空字符串替换她们,如下:
xml =xml.replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", "").replace("\n","").replace(" ","");

 

  1. 字符串字节码,必须转为utf-8,如下:
document = reader.read(new ByteArrayInputStream(xml.getBytes("utf-8")));

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值