当前位置: 代码迷 >> J2EE >> java XML 求 格式化一份 XML 文件 高分给你哦
  详细解决方案

java XML 求 格式化一份 XML 文件 高分给你哦

热度:688   发布时间:2016-04-22 02:28:44.0
java XML高手请进 求 格式化一份 XML 文件 高分给你哦
要求用Java 格式化的结果 存放在 Map 中,最好 再把Map 放在List中 其中 "r8"表示double数据类型, 

<?xml version="1.0" encoding="gb2312"?>
<DATAPACKET Version="2.0">
<METADATA>
<FIELDS>
<FIELD attrname="b" fieldname="SERIALNO" fieldtype="string" required="true" WIDTH="20"/>
<FIELD attrname="c" fieldname="ACCTSERIALNO" fieldtype="string" WIDTH="100"/>
<FIELD attrname="d" fieldname="CARDTYPE" fieldtype="r8"/>
<FIELD attrname="e" fieldname="TXNSERIALNO" fieldtype="string" WIDTH="20"/>
<FIELD attrname="f" fieldname="BIZNO" fieldtype="string" WIDTH="20"/>
<FIELD attrname="g" fieldname="TRADENAME" fieldtype="string" WIDTH="40"/>
<FIELD attrname="h" fieldname="CUR" fieldtype="string" SUBTYPE="FixedChar" WIDTH="3"/>
<FIELD attrname="i" fieldname="AMT" fieldtype="r8"/>
<FIELD attrname="j" fieldname="OPERID" fieldtype="string" WIDTH="10"/>
<FIELD attrname="k" fieldname="PRINTDEGREE" fieldtype="r8"/>
<FIELD attrname="l" fieldname="CARDNO" fieldtype="r8"/>
<FIELD attrname="m" fieldname="CARDNAME" fieldtype="string" WIDTH="40"/>
<FIELD attrname="n" fieldname="ACCTDATE" fieldtype="dateTime"/>
<FIELD attrname="o" fieldname="ORGNO" fieldtype="string" WIDTH="20"/>
</FIELDS>
</METADATA>
<ROWDATA>
<ROW b="1111141321259821484" c="1111140000013070" d="2.0" e="1111140000013070" f="5566IRJX11000289" g="登记解付" h="USD" i="25496.68" j="96" k="0.0" l="21.0" m="通用记帐凭证" n="20111114T00:00:00000" o="1000000000" />
<ROW b="1111141321259851625" c="1111140000013069" d="2.0" e="1111140000013069" f="5566IRJX11000290" g="登记解付" h="USD" i="35431.6" j="96" k="0.0" l="21.0" m="通用记帐凭证" n="20111114T00:00:00000" o="1000000000" />
</ROWDATA>
</DATAPACKET>

------解决方案--------------------
我把FIELD的值全部取出来了,ROW也是差不多的
我对怎么封装成map的需求不太清楚,lz自己做吧
Java code
import java.io.File;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.SAXReader;public class MyReaderXMLTest {    public static void main(String[] args) {           try {              SAXReader saxReader=new SAXReader();              Document doc=saxReader.read(new File("MyXml1.xml"));              List<Node> data=doc.selectNodes("/DATAPACKET/METADATA/FIELDS/FIELD");              for(Node node:data){                  if("Element".equals(node.getNodeTypeName())){                        Element element=(Element)node;                        System.out.print(element.attributeValue("attrname")+"\t");                        System.out.print(element.attributeValue("fieldname")+"\t");                        System.out.print(element.attributeValue("fieldtype")+"\t");                        System.out.print(element.attributeValue("required")+"\t");                        System.out.print(element.attributeValue("WIDTH")+"\t");                        System.out.println();                  }              }           } catch (Exception e) {               e.printStackTrace();           }        }}
  相关解决方案