用SAXReader解析xml文档【转】
来源:http://blog.csdn.net/seayqrain/article/details/5024068
使用SAXReader需要导入dom4j-full.jar包。
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge上找到它。
使用举例:
1. s.xml内容
- <?xml version="1.0" encoding="GB2312"?>
- <data>
- <row queryDTO.enterpriseId="gfd" queryDTO.loginName="gdfg" queryDTO.state="0"/>
- </data>
2.解析
- 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;
- import org.dom4j.tree.AbstractAttribute;
- public class ReadXMLTest {
- public static void main(String[] args){
- File xmlFile = new File("C:/s.xml");
- FileInputStream fis = null;
- try {
- fis = new FileInputStream(xmlFile);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- System.err.println("File is not exsit!");
- }
- SAXReader saxReader = new SAXReader();
- List rowList = null;
- try {
- //生成文档对应实体
- Document doc = saxReader.read(fis);
- //获取指定路径下的元素列表,这里指获取所有的data下的row元素
- rowList = doc.selectNodes("//data/row");
- } catch (DocumentException e) {
- e.printStackTrace();
- }
- for(Iterator iter = rowList.iterator();iter.hasNext();){
- //获得具体的row元素
- Element element = (Element)iter.next();
- //获得row元素的所有属性列表
- List elementList = element.attributes();
- for(Iterator iter1 = elementList.iterator();iter1.hasNext();){
- //将每个属性转化为一个抽象属性,然后获取其名字和值
- AbstractAttribute aa = (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
- System.out.println(element.getName());
- //输出:
- //row
- // 取得row元素的queryDTO.enterpriseId属性的值
- System.out.println(element.attributeValue("queryDTO.enterpriseId"));
- //输出:
- //gfd
- //如果element下有子元素,(类似width="**"),要想获得该子元素的值,可以用如下方法
- System.out.println(element.elementText("width"));//因为没有,所以输出为null。
- }
- }
- }
用SAXReader解析xml文档【转】的更多相关文章
- dom4j解析xml文档全面介绍
一.dom4j介绍 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点, ...
- 使用dom4j解析XML文档
dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不 ...
- 四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)
众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...
- 浅谈用java解析xml文档(四)
继续接上一文,这一阵子因为公司项目加紧,导致最后一个解析xml文档的方式,还没有总结,下面总结使用dom4J解析xml. DOM4J(Document Object Model for Java) 使 ...
- DOM4J解析XML文档
Tip:DOM4J解析XML文档 Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM的人分离出来而后独立开发的.与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j ...
- 使用DOM4J解析XML文档,以及使用XPath提取XML文档
使用DOM4J解析XML文档 需要首先下载DOM4J工具包.这是个第三方工具包 在使用DOM4J解析的时候需要导入 DOM4J的JAR包 下载DOM4J工具包->在MyEclipse中新建lib ...
- 四种生成和解析XML文档的方法详解
众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml- ...
- dom4j创建和解析xml文档
DOM4J解析 特征: 1.JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能. 2.它使用接口和抽象基本类方法. 3.具有性能优异.灵活性好.功能强大和极端易用的特点. 4.是一个开 ...
- 源生API解析XML文档与dom4j解析XML文档
一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可 ...
随机推荐
- iOS-UITextField 全面解析
iOS中UITextField 使用全面解析 建议收藏,用到的时候来这里一查就都明白了 //初始化textfield并设置位置及大小 UITextField *text = [[UITextField ...
- 18.boost 图的拓扑排序
运行结果: 代码示例: #include <iostream> #include <vector> #include <deque> #include <bo ...
- SpringBoot(一) 基础入门
SpringBoot简要 简化Spring应用开发的一个框架: 整个Spring技术栈的一个大整合: J2EE开发的一站式解决方案: 自动配置:针对很多Spring应用程序常见的应用功能,Spring ...
- Android自定义TabBar
转载请说明出处:http://www.sunhome.org.cn 我发现现在的移动开发界面都被iOS主导了,UI动不动设计出来的东西都是ios的风格,对于一个做Android的程序员来说甚是苦恼啊, ...
- 【原创】JMS生产者和消费者【PTP异步接收消息】
PTP模式下,异步接收消息需要定义一个MessageListener来监听,当生产者有消息要发送时会主动通知Listener去处理该消息,会调用监听的onMessage方法去处理. 首先看生产者(和同 ...
- Struts1、Struts2、Hibernate、Spring框架工作原理介绍
Struts1工作原理 Struts1工作原理图 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控 ...
- nginx的rewrite规则
301跳转: server { listen 80; server_name www.xiaofan.com; return 301 https://$server_name$request_uri; ...
- ActiveMQ学习笔记(6)----ActiveMQ整合Spring开发
1. 添加依赖 spring 提供了对JMS的支持,需要添加Spring支持jms的包和Spring的核心包,如下: <dependency> <groupId>org.apa ...
- 原生ajax实现文件上传
视图层 JS 函数: <input type="file" onchange="sendFile()" id="up" /> ...
- 算法38---292. Nim游戏
1.题目: 你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头. 拿掉最后一块石头的人就是获胜者.你作为先手. 你们是聪明人,每一步都是最优解. 编写一个函 ...