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

用SAXReader解析xml文档

发布时间:2020-12-16 06:05:00 所属栏目:百科 来源:网络整理
导读:使用SAXReader需要导入dom4j-full.jar包。 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。

使用SAXReader需要导入dom4j-full.jar包。

dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。

使用举例:

1. s.xml内容

[xhtml] view plain copy
  1. <?xmlversion="1.0"encoding="GB2312"?>
  2. <data>
  3. rowqueryDTO.enterpriseId="gfd"queryDTO.loginName="gdfg"queryDTO.state="0"/>
  4. </>

2.解析

[c-sharp] copy
    importjava.io.File;
  1. importjava.io.FileInputStream;
  2. importjava.io.FileNotFoundException;
  3. importjava.util.Iterator;
  4. importjava.util.List;
  5. importorg.dom4j.Document;
  6. importorg.dom4j.DocumentException;
  7. importorg.dom4j.Element;
  8. importorg.dom4j.io.SAXReader;
  9. importorg.dom4j.tree.AbstractAttribute;
  10. publicclassReadXMLTest{
  11. staticvoidmain(String[]args){
  12. FilexmlFile=newFile("C:/s.xml");
  13. FileInputStreamfis=null;
  14. try{
  15. fis=newFileInputStream(xmlFile);
  16. }catch(FileNotFoundExceptione){
  17. e.printStackTrace();
  18. System.err.println("Fileisnotexsit!");
  19. }
  20. SAXReadersaxReader=newSAXReader();
  21. ListrowList=null;
  22. try{
  23. //生成文档对应实体
  24. Documentdoc=saxReader.read(fis);
  25. //获取指定路径下的元素列表,这里指获取所有的data下的row元素
  26. rowList=doc.selectNodes("//data/row");
  27. catch(DocumentExceptione){
  28. }
  29. for(Iteratoriter=rowList.iterator();iter.hasNext();){
  30. //获得具体的row元素
  31. Elementelement=(Element)iter.next();
  32. //获得row元素的所有属性列表
  33. ListelementList=element.attributes();
  34. for(Iteratoriter1=elementList.iterator();iter1.hasNext();){
  35. //将每个属性转化为一个抽象属性,然后获取其名字和值
  36. AbstractAttributeaa=(AbstractAttribute)iter1.next();
  37. System.out.println("Name:"+aa.getName()+";Value:"+aa.getValue());
  38. //输出:
  39. //Name:queryDTO.enterpriseId;Value:gfd
  40. //Name:queryDTO.loginName;Value:gdfg
  41. //Name:queryDTO.state;Value:0
  42. out.println(element.getName());
  43. //输出:
  44. //row
  45. //取得row元素的queryDTO.enterpriseId属性的值
  46. out.println(element.attributeValue("queryDTO.enterpriseId"));
  47. //gfd
  48. //如果element下有子元素,(类似width="**"),要想获得该子元素的值,可以用如下方法
  49. out.println(element.elementText("width"));//因为没有,所以输出为null。
  50. }




http://blog.csdn.net/seayqrain/article/details/5024068

(编辑:李大同)

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

    推荐文章
      热点阅读