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

用SAXReader解析xml文档

发布时间:2020-12-16 05:45:56 所属栏目:百科 来源:网络整理
导读:使用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内容

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

2.解析

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

(编辑:李大同)

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

    推荐文章
      热点阅读