原XML文件:
<?xml version="1.0" encoding="GB2312"?>
<root>
@H_404_6@<test>99999</test>
<sys>
<prcscd>5275</prcscd>
<timeout>0</timeout>
</sys>
<comm_req>
<qudaohao>001</qudaohao>
<farendma>9999</farendma>
<jiaoyirq>20151221</jiaoyirq>
<jiaoyijg>018888</jiaoyijg>
<jiaoyigy>0100010</jiaoyigy>
<jiaoyima>5275</jiaoyima>
<waibclma>6600</waibclma>
@H_404_6@<test>
@H_404_6@<dmkaif>99898989</dmkaif>
@H_404_6@<hhh>
@H_404_6@<hao>000</hao>
@H_404_6@</hhh>
@H_404_6@</test>
<waibjymc>c1aaaa</waibjymc>x
<waiblius>QD0011221000000012</waiblius>
<waibriqi>20151221</waibriqi>
<jiaoyilx>1</jiaoyilx>
<ipdizhii>10.91.100.174</ipdizhii>
<zhongdhm>QH-20141117QBBW</zhongdhm>
<zhaiyoms>2</zhaiyoms>
<feiyqrbz>0</feiyqrbz>
<ldbiaozi>0</ldbiaozi>
</comm_req>
<input>
<jiaoyima>C1AAAA</jiaoyima>
<ziduanlb>tranam</ziduanlb>
<ziduanzi>2220.00</ziduanzi>
</input>
</root>
解析的程序
package sunline.subsystem.expr.common.logic;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ReadXmlTest {
@H_404_6@public static void main(String[] args) {
@H_404_6@File xmlFile = new File("D:/test.xml");//指定路径、
@H_404_6@FileInputStream fis = null;
@H_404_6@try{
@H_404_6@fis = new FileInputStream(xmlFile);
@H_404_6@}catch (FileNotFoundException e) {
@H_404_6@e.printStackTrace();
@H_404_6@System.out.println("file not exsit !");
@H_404_6@}
@H_404_6@
@H_404_6@SAXReader saxReader = new SAXReader();
@H_404_6@saxReader.setEncoding("gbk");
@H_404_6@Element rootElement = null;
@H_404_6@List<Element> elements = null;
@H_404_6@try{
@H_404_6@//生成文档实体
@H_404_6@Document doc = saxReader.read(fis);
@H_404_6@rootElement = doc.getRootElement();
@H_404_6@}catch (DocumentException e) {
@H_404_6@e.printStackTrace();
@H_404_6@}
@H_404_6@printValue(rootElement);
@H_404_6@
@H_404_6@}
@H_404_6@/*
*使用递归对整个节点进行解析
*/ private static void printValue(Element e){ if (e.elements().size() == 0) {//当节点没有子节点的时候 System.out.println("Name:"+e.getName()+",Value:"+e.getText()); return; } for ( Iterator iterInner = e.elementIterator(); iterInner.hasNext(); ) {//如果该节点存在子节点 Element elementInner = (Element) iterInner.next(); printValue(elementInner); } } }