加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用SAXReader读取xml文件

发布时间:2020-12-16 05:59:55 所属栏目:百科 来源:网络整理
导读:原XML文件: ?xml version="1.0" encoding="GB2312"? root test99999/test sys prcscd5275/prcscd timeout0/timeout /sys comm_req qudaohao001/qudaohao farendma9999/farendma jiaoyirq20151221/jiaoyirq jiaoyijg018888/jiaoyijg jiaoyigy0100010/jiaoyig

原XML文件:

<?xml version="1.0" encoding="GB2312"?>
<root>
<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>
<test>
<dmkaif>99898989</dmkaif>
<hhh>
<hao>000</hao>
</hhh>
</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 {
public static void main(String[] args) {
File xmlFile = new File("D:/test.xml");//指定路径、
FileInputStream fis = null;
try{
fis = new FileInputStream(xmlFile);
}catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("file not exsit !");
}

SAXReader saxReader = new SAXReader();
saxReader.setEncoding("gbk");
Element rootElement = null;
List<Element> elements = null;
try{
//生成文档实体
Document doc = saxReader.read(fis);
rootElement = doc.getRootElement();
}catch (DocumentException e) {
e.printStackTrace();
}
printValue(rootElement);

}

/*

*使用递归对整个节点进行解析

*/ 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); } } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读