使用Dom 处理含有Cdata的xml报文

本文介绍了一种使用Java将包含Cdata的XML文件转换为JSON的方法,利用了jdom2和json-simple库,通过解析XML的list元素并将其转化为JSONArray,实现了数据的有效转换。

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

前言

之前在网上找了很多没有找到合理的处理含有Cdata的xml 并且中含有集合没有找到自己根据理解写了一个方法。初学java希望大佬多多关照!话不多直接上代码

 <dependency>
		<groupId>org.jdom</groupId>
		<artifactId>jdom2</artifactId>
	</dependency>
	<dependency>
		<groupId>com.googlecode.json-simple</groupId>
		<artifactId>json-simple</artifactId>
	</dependency>

import java.io.IOException;
import java.io.StringReader;
import java.util.List;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.xml.sax.InputSource;

String s =
“<data>”
+"<list>"
+ “<name><![CDATA[张三]]></name>”
+ “<phone><![CDATA[189391]]></phone>”
+"</list>"
+"<list>"
+ “<name><![CDATA[李四]]></name>”
+ “<phone><![CDATA[123456]]></phone>”
+"</list>"
+ “</data>”;

			try {
			StringReader sr = new StringReader(s);
			InputSource is = new InputSource(sr);
			SAXBuilder   sab = new SAXBuilder();
			Document  document=sab.build(is);
			Element element=document.getRootElement();
			List<Element>  es=element.getChildren();
			JSONArray array=new JSONArray();
			for (int i = 0; i < es.size(); i++) {
				List<Element>  es2=es.get(i).getChildren();
				JSONObject  json=new JSONObject();
				for (Element element2 : es2) {
					json.put(element2.getName().toString(), element2.getValue().toString());
					System.out.println("key--"+element2.getName()+"value--"+element2.getValue());
				}
				array.add(json);
			}
			System.out.println(array);
		} catch (JDOMException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值