java中String类型的xml格式数据解析

最近研究java爬虫,Get请求后取得数据为String类型的xml数据,尝试了许久的解析,因此做个小记录。
xml数据如下(String类型):

<?xml version="1.0" encoding="UTF-8"?>
<hello>
<a>123456</a>
<g>0064542</g>
<co>DE</co>
<f>143</f>
<ok>0</ok>
<error></error>
<tr>

<ztt>
<riqi>2019-03-07</riqi>
<sj>20:21:00</sj>
<zt> zugestellt</zt>
<add></add>
</ztt>

<ztt>
<riqi>2019-03-07</riqi>
<sj>15:12:00</sj>
<zt>Die </zt>
<add></add>
</ztt>

<ztt>
<riqi>2019-03-07</riqi>
<sj>10:13:00</sj>
<zt>Die Send</zt>
<add>Neumark</add>
</ztt>

<ztt>
<riqi>2019-03-01</riqi>
<sj>22:03:24</sj>
<zt>Custom clearance completed</zt>
<add>DE</add>
</ztt>

</tr>
<status>7</status>
<notra>yes</notra>

</hello>

目的是为了拿到中间几串相同格式的字符串数据,博主首先考虑了JavaSchool学习网站中的方法来尝试javaString 转xml的方式:
关键代码:String xml = “”;//指上诉数据

Document doc = DocumentHelper.parseText(xml);
            Element root = doc.getRootElement();
需要导入jar包:
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

并再pom.xml中添加依赖:

<dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>

但是之后不止如何将它解析为list,最后选择了暴力解析。
1.先用String切割,去掉头尾字符串,只留有用的中间数据,

String result = xml.substring(response.indexOf("<tr>") + 1,xml.lastIndexOf("</tr"));

再转: org.jsoup.nodes.Document doc = Jsoup.parse(result);
最后用 getElementsByTag("")选择标签的方式将它提取了出来。

还有一个转的方式:

//将xml转为json
            JSONObject jsonXML = XML.toJSONObject(response);
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值