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

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

使用举例:

1.    s.xml内容

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

2.解析

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

java SAXReader的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol

    java解析XML saxReader.read(xml) 错误:org.dom4j.DocumentException: no protocol 完整错误信息: org.dom4j.Document ...

  3. Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader

    Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/dom4j/io/SAXReader ...

  4. Java进击C#——语法之IO操作

    本章简言 上一章我们对线程同步进行讲解.了解如何去处理可能发生的脏数据.而本章就要讲有关于C#在读取IO文件的时候,常常用到的操作类.这一章的内容会比较少.但是笔者还是总结出来让读者们有一个学习的方向 ...

  5. 在Java中使用xpath对xml解析

    xpath是一门在xml文档中查找信息的语言.xpath用于在XML文档中通过元素和属性进行导航.它的返回值可能是节点,节点集合,文本,以及节点和文本的混合等.在学习本文档之前应该对XML的节点,元素 ...

  6. java对xml节点属性的增删改查

    学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解. package vastsum; import java.io.File; import java.io.Fi ...

  7. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

  8. java DOM4J 读取XML

    最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...

  9. 使用poco 的NetSSL_OpenSSL 搭建https 服务端,使用C++客户端,java 客户端访问,python访问(python还没找到带证书访问的代码.)

    V20161028 由于项目原因,需要用到https去做一些事情. 这儿做了一些相应的研究. 这个https 用起来也是折腾人,还是研究了一周多+之前的一些积累. 目录 1,java client 通 ...

随机推荐

  1. iOS:APNS推送主要代码

    首先,在AppDelegate.m 中: 1,注册通知 //[objc] view plaincopyprint?在CODE上查看代码片派生到我的代码片 - (BOOL)application:(UI ...

  2. IE11快捷键 双击没反应的解决办法

    WIN + R,regedit,找到 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main 对左侧树Main节点右键——权限. 正常情 ...

  3. IOS Vsync

    vsync count Don't Sync Application.targetFrameRate 设置FPS上限 Every Second VBlank 30 Every VBlank 60 An ...

  4. Webpack安装和配置

    一.安装和配置webpack 1.全局安装webpack 这样就安装好了webpack,可以再全局通过webpack -v来查看是否安装成功. 2.先创建项目目录结构,根目录是mywebpack.进入 ...

  5. 微信小程序 - 滑动显示地点信息(map)

    演示效果如下: 资源如下 marker,png index.wxml <view class="map-container"> <map id="map ...

  6. 在LoadRunner脚本中实现随机ThinkTime

    一般情况下,我们都是通过Run-Time Settings来设置Think Time(思考时间),可以设置回放脚本时忽略思考时间,或者是设置回放随机的一段思考时间. By default, when ...

  7. 经验总结54--搭建linux虚拟机环境

    好久没写博客了.写一篇环境搭建吧. 自己做java,有时会接触linux环境,自己能够搭建一个,方便自己做实验和学习. 1.下载VM11. 下载并依照VM:http://rj.baidu.com/so ...

  8. C-printf/sprintf/snprintf中的类型转换详解

    源码1 #include <stdio.h> void f1() { double x = -5.5625; printf("%d\n",x); //输出为0,为什么? ...

  9. 剑指Offer-正则表达式匹配(Python)

    1 题干内容 请实现一个函数用来匹配包括.和*的正则表达式.模式中的字符.表示任意一个字符,而*表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个模式. 例如,字 ...

  10. 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)

    二维数组,锯齿数组和集合 一.二维数组 二维数组:一维数组----豆角二维数组----表格 定义:1.一维数组:数据类型[] 数组变量名 = new 数据类型[数组长度];数据类型[] 数组变量名 = ...