Java 读取多层级循环xml

问题:在项目开发中对接银行接口,由于银行接口使用的技术比较古老,接口返回的数据为xml格式。xml数据多层嵌套存在多个标签循环,类似与java中的List对象集合。下面的方法就是对多相同xml标签进行读取,并转为List对象集合。

参考工具类:Hutool

xml示例

<note>
    <trans>
        <detail>
            <id>001</id>
            <name>李三三</name>
            <phone>001</phone>
        </detail>
        <detail>
            <id>001</id>
            <name>李三三</name>
            <phone>001</phone>
        </detail>
        <detail>
            <id>001</id>
            <name>李三三</name>
            <phone>001</phone>
        </detail>
    </trans>
</note>

核心代码

/**
 * 解析响应报文xml
 */
private List<Tran> parseResponseXml(Document document) {
	List<Tran> trans = new ArrayList<>();

	Element transElement = XmlUtil.getElementByXPath("//note/trans", document);
	List<Element> elements = XmlUtil.getElements(transElement, "detail");
	for (Element element : elements) {
		trans.add(toTran(element));
	}

	return trans;
}

/**
 * xml交易记录转对象
 */
private Tran toTran(Element element) {
	Tran tran = new Tran();
	tran.setId(XmlUtil.elementText(element, "id"));
	tran.setName(XmlUtil.elementText(element, "name"));
	tran.setPhone(XmlUtil.elementText(element, "phone"));
	return tran;
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值