最近遇到一个问题 , 将xml中的内容进行倒序 , 对Dom4j没有那么深入了解 , 故此记录一下
所需转换xml原文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<TESTOUT>
<FILE_TYPE>001</FILE_TYPE>
<BUSION_TYPE>08</BUSION_TYPE>
<DEPT_CODE>110815108</DEPT_CODE>
<TEST>
<CODE>001</ACCNT_CODE>
<NAME>张三</ACCNT_NAME>
<MONEY>1000</MONEY>
<CREDIT>100</CREDIT>
<DATE>20170712</DATE>
</TEST>
<TEST>
<CODE>002</ACCNT_CODE>
<NAME>李四</ACCNT_NAME>
<MONEY>1000</MONEY>
<CREDIT>100</CREDIT>
<DATE>20170712</DATE>
</TEST>
<TEST>
<CODE>003</ACCNT_CODE>
<NAME>王五</ACCNT_NAME>
<MONEY>1000</MONEY>
<CREDIT>100</CREDIT>
<DATE>20170712</DATE>
</TEST>
<TEST>
<CODE>004</ACCNT_CODE>
<NAME>其他</ACCNT_NAME>
<MONEY>1000</MONEY>
<CREDIT>100</CREDIT>
<DATE>20170712</DATE>
</TEST>
</TESTOUT>
将所有的<TEST>标签取出 , 之后将这些标签进行倒序操作
代码如下 :
Blob b = 数据库中报文内容; content = new String(b.getBytes((long) 1, (int) b.length())); Document document = DocumentHelper.parseText(content); Element root = document.getRootElement(); List nodes = root.elements("TEST"); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("<TESTNEW>"); for (int j = nodes.size() - 1; j >= 0; j--) { Element eElement = (Element) nodes.get(j); String rootXmlText = eElement.asXML(); stringBuffer.append(rootXmlText); } stringBuffer.append("</TESTNEW>"); String record = stringBuffer.toString(); document = DocumentHelper.parseText(record); root = document.getRootElement(); nodes = root.elements("TEST");