数据格式如下:
<XML>
<item>
<AMONTH>201908</AMONTH>
<PROJECT>JAGUAR</PROJECT>
<SITE>ZZ</SITE>
<MPN>MRY42LL/A</MPN>
<SUBASS>639-06875-002</SUBASS>
<APN>103S00091</APN>
<ZITEM>1730</ZITEM>
<ZLEVEL>MLB</ZLEVEL>
<ZDESC>RES,MF,100OHM,0.1%,1/32W,01005</ZDESC>
<ZQTY>1.000000</ZQTY>
<F_COST>0.010514</F_COST>
<T_COST>0.010514</T_COST>
</item>
<item>
<AMONTH>201908</AMONTH>
<PROJECT>JAGUAR</PROJECT>
<SITE>ZZ</SITE>
<MPN>MRY42LL/A</MPN>
<SUBASS>639-06875-002</SUBASS>
<APN>103S00091</APN>
<ZITEM>1730</ZITEM>
<ZLEVEL>MLB</ZLEVEL>
<ZDESC>RES,MF,100OHM,0.1%,1/32W,01005</ZDESC>
<ZQTY>1.000000</ZQTY>
<F_COST>0.010514</F_COST>
<T_COST>0.010514</T_COST>
</item>
</XML>
引入DOM4J相关依赖,解析代码如下:
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new ByteArrayInputStream(ll.toXML().getBytes("UTF-8")));
if (document != null) {
//根标签 XML标签
Element root = document.getRootElement();
if (root != null) {
Iterator<Element> iterator = root.elementIterator();
while (iterator.hasNext()) {
//e代表item标签
Element e = iterator.next();
//qbc是建立的实体类对象 将解析出的数据赋值给实体对象
qbc.setAppleMonth(e.elementText("AMONTH"));
qbc.setSite(e.elementText("SITE"));
qbc.setProject(e.elementText("PROJECT"));
qbc.setMpn(e.elementText("SUBASS"));
qbc.setApn(e.elementText("APN"));
qbc.setLevel(e.elementText("ZLEVEL"));
qbc.setDescription(e.elementText("ZDESC"));
qbc.setQuantity(Double.valueOf(e.elementText("ZQTY")));
qbc.setPrice(Double.valueOf(e.elementText("F_COST")));
//提前声明的list集合 将实体对象放入list 拿到解析的数据
list.add(qbc);
}
}
}
Document document = saxReader.read(new ByteArrayInputStream(ll.toXML().getBytes(“UTF-8”)));
该数据是通过SAP接口调用获得,所以需要进行处理,代码中的root代表根标签,e代表item标签,此处代码会遍历两次。
本人水平有限,如果哪里写的不对,希望大神能够指正!