用SAXReader解析xml文档

使用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。
        }  

    }
}  

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

用SAXReader解析xml文档

时间: 2024-11-08 04:16:42

用SAXReader解析xml文档的相关文章

dom4j 解析 XML文档截录

dom4j 是一种解析 XML 文档的开放源代码 XML 框架.本文介绍如何使用包含在 dom4j 中的解析器创建并修改 XML 文档. dom4j API 包含一个解析 XML 文档的工具.本文中将使用这个解析器创建一个示例 XML 文档.清单 1 显示了这个示例 XML 文档,catalog.xml. 清单 1. 示例 XML 文档(catalog.xml) <?xml version="1.0" encoding="UTF-8"?> <cat

四种生成和解析XML文档的方法详解

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 一.介绍及优缺点分析 1. DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的. [优点]      ①允许应用

浅谈用java解析xml文档(四)

继续接上一文,这一阵子因为公司项目加紧,导致最后一个解析xml文档的方式,还没有总结,下面总结使用dom4J解析xml. DOM4J(Document Object Model for Java) 使用dom4j解析,个人认为是四种解析方式里面最方便的一种,DOM4J是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件.如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML,特别值得一提的是连Sun的JAXM也在用D

使用dom4j解析XML文档

dom4j的包开源包,不属于JDK里面,在myeclipse中要单独导入在项目中,这里不累赘了 做这个过程,很慢,因为很多方法没用过不熟悉,自己得去查帮助文档,而且还得去试,因为没有中文版,英文翻译不准确,也会导致多个同名的方法理解和用法不同 XML: <?xml version="1.0" encoding="utf-8"?> <students> <student age="25"> <name>

艺多不压身 -- 四种生成和解析XML文档的方法详解

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX: JDOM: DOM4J: 一.介绍及优缺点分析 1. DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然

javaweb dom4j解析xml文档

1.什么是dom4j dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件,可以在SourceForge上找到它.在IBM developerWorks上面还可以找到一篇文章,对主流的Java XML API进行的性能.功能和易用性的评测,所以可以知道dom4j无论在哪个方面都是非常出色的.如今可以看到越

xml基础及其解析xml文档

xml基础及其解析xml文档 xml基础及其解析xml文档 xml基础语法 中国特色乱码问题 写xml文件的工具 xml中使用的转义字符 处理指令已经过时 xml的两个重要的功能 xml注释 xml解析Java应用程序读取xml文件的内容 xml解析原理 xml解析工具 DOM4J使用 DOM4J中核心API 将xml文档从磁盘读进内存形成Document对象 读取所有的标签节点 读取所有的属性节点 读取所有的文本节点 解决上面提出的问题 xml基础语法 一个基本的xml构成: <!--vers

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)

四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例) 众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 下面首先给出这四种方法的jar包下载地址 DOM:在现在的Java JDK里都自带了,在xml-apis.jar包里 SAX:http://sourceforge.net/projects/sax/ JDOM:http://jdom.org/downloads/index.html DOM4J:http://sourceforge.

【学习笔记】关于DOM4J:使用DOM4J解析XML文档

一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org.dom4j这个包里定义: 二.DOM4J的接口 Attribute:定义了XML的属性: Branch:是能够包含子节点的节点,如XML元素(Element)和文档(Documents)定义了一个公共的行为: CDATA:定义了XML的CDATA区域: CharacterData:是一个标识接口,标