使用SAXReader需要导入dom4j-full.jar包。
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。
使用举例:
1. s.xml内容
- <?xmlversion="1.0"encoding="GB2312"?>
- <data>
- rowqueryDTO.enterpriseId="gfd"queryDTO.loginName="gdfg"queryDTO.state="0"/>
- </>
2.解析
- importjava.io.File;
- importjava.io.FileInputStream;
- importjava.io.FileNotFoundException;
- importjava.util.Iterator;
- importjava.util.List;
- importorg.dom4j.Document;
- importorg.dom4j.DocumentException;
- importorg.dom4j.Element;
- importorg.dom4j.io.SAXReader;
- importorg.dom4j.tree.AbstractAttribute;
-
- publicclassReadXMLTest{
- staticvoidmain(String[]args){
- FilexmlFile=newFile("C:/s.xml");
- FileInputStreamfis=null;
- try{
- fis=newFileInputStream(xmlFile);
- }catch(FileNotFoundExceptione){
- e.printStackTrace();
- System.err.println("Fileisnotexsit!");
- }
- SAXReadersaxReader=newSAXReader();
- ListrowList=null;
- try{
-
- Documentdoc=saxReader.read(fis);
- //获取指定路径下的元素列表,这里指获取所有的data下的row元素
- rowList=doc.selectNodes("//data/row");
- catch(DocumentExceptione){
- }
-
- for(Iteratoriter=rowList.iterator();iter.hasNext();){
- //获得具体的row元素
- Elementelement=(Element)iter.next();
- //获得row元素的所有属性列表
- ListelementList=element.attributes();
- for(Iteratoriter1=elementList.iterator();iter1.hasNext();){
-
- AbstractAttributeaa=(AbstractAttribute)iter1.next();
- System.out.println("Name:"+aa.getName()+";Value:"+aa.getValue());
- //输出:
- //Name:queryDTO.enterpriseId;Value:gfd
- //Name:queryDTO.loginName;Value:gdfg
- //Name:queryDTO.state;Value:0
- out.println(element.getName());
- //输出:
- //row
- //取得row元素的queryDTO.enterpriseId属性的值
- out.println(element.attributeValue("queryDTO.enterpriseId"));
- //gfd
- //如果element下有子元素,(类似width="**"),要想获得该子元素的值,可以用如下方法
- out.println(element.elementText("width"));
- }
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|