转:http://blog.163.com/chenhui_java/blog/static/172672494201092632424462/
以下是四种读取xml文件的方式,每种都有自己的用处。这是我在写日志管理器的时候查找到的。希望能给大家帮助
首先我们先给出一个简单的xml文件
<?xml version="1.0" ?>
<ROWDATA>
<ROW>
<C0>1</C0>
<EMPNO>7891</EMPNO>
<ENAME>sdffff</ENAME>
<JOB>job</JOB>
<MGR></MGR>
<HIREDATE>2010-1-1</HIREDATE>
<SAL>5000.00</SAL>
<COMM>1000.00</COMM>
<DEPTNO></DEPTNO>
</ROW>
<ROW>
<C0>2</C0>
<EMPNO>7369</EMPNO>
<ENAME>SMITH</ENAME>
<JOB>CLERK</JOB>
<MGR>7902</MGR>
<HIREDATE>1980-12-17</HIREDATE>
<SAL>800.00</SAL>
<COMM></COMM>
<DEPTNO>20</DEPTNO>
</ROW>
</ROWDATA>
第一种:
/**
* 使用dom4j 中saxreader 获取Document容器,利用此容器的elementIterator读取xml文件
*/
public static void readXML() throws DocumentException{
SAXReader sr = new SAXReader();//获取读取xml的对象。
Document doc = sr.read("src/com/sinojava/EMP.xml");//得到xml所在位置。然后开始读取。并将数据放入doc中
Element el_root = doc.getRootElement();//向外取数据,获取xml的根节点。
Iterator it = el_root.elementIterator();//从根节点下依次遍历,获取根节点下所有子节点
while(it.hasNext()){//遍历该子节点
Object o = it.next();//再获取该子节点下的子节点
Element el_row = (Element)o;
String s = el_row.getText();
Iterator it_row = el_row.elementIterator();
while(it_row.hasNext()){//遍历节点
Element el_ename = (Element)it_row.next();//获取该节点下的所有数据。
System.out.println(el_ename.getText());
}
//System.out.println(o);
}
}
第二种
/**
* 使用elements方法进行xml的读取,相当于条件查询,可以根据不同的节点,利用for循环查询该节点下所有的数据。
* @throws DocumentException
*/
public static void readXML02() throws DocumentException{
SAXReader sr = new SAXReader();//获取读取方式
Document doc = sr.read("src/com/sinojava/EMP.xml");//读取xml文件,并且将数据全部存放到Document中
Element root = doc.getRootElement();//获取根节点
List list = root.elements("ROW");//根据根节点,将根节点下 row中的所有数据放到list容器中。
for(Object obj:list){//这种遍历方式,是jdk1.5以上的版本支持的遍历方式
Element row = (Element)obj;
List list_row = row.elements("ENAME");//获取ENAME节点下所有的内容,存入list_row容器中
for(Object objempno:list_row){
Element el_empno = (Element)objempno;
System.out.println(el_empno.getName()+": "+el_empno.getText());//获取节点下的数据。
}
}
}
第三种:
/**
* 使用适配器来完成xml的读取。
* @param args
* @throws DocumentException
*/
public static void readXML04() throws DocumentException{
SAXReader sr = new SAXReader();
Document doc = sr.read("src/com/sinojava/EMP.xml");
doc.accept(new VisitorSupport() {//使用观察器的子类,来完成对xml文件的读取。
public void visit(Element el) {//利用观察期进行xml的读取。
System.out.println(el.getName()+": "+el.getText());
}
});
}
第四种:
/**
* 使用selectNodes读取xml文件
* @param args
* @throws DocumentException
*/
public static void readXML05(String elementpath) throws DocumentException{
SAXReader sr = new SAXReader();
Document doc = sr.read("src/com/sinojava/EMP.xml");
List list = doc.selectNodes(elementpath);//使用selectNodes获取所要查询xml的节点。
for(Object obj:list){//遍历节点,获取节点内数据。
Element el = (Element)obj;
System.out.println(el.getText());
}
}
以上四种都是使用dom4j来读取xml文件。是比较常见的四种方式。当然还有其他的不用dom4j的方式
分享到:
相关推荐
在Java开发中,dom4j和jaxen是两个常用的库,用于解析和操作XML文档。 **dom4j** 是一个非常灵活且功能强大的Java XML API,它提供了全面的XML解决方案,包括XML的读取、写入、修改以及XPath查询等功能。dom4j的...
本文将详细介绍使用dom4j读取XML文件的四种常见方法,并通过示例代码帮助读者更好地理解和掌握这些技术。 #### 方法一:使用`SAXReader`与`elementIterator` **方法原理**: 此方法首先利用`SAXReader`读取XML文档...
DOM4J是Java中一个非常优秀的XML处理库,它提供了丰富的API,使得操作XML文件变得简单而高效。在本文中,我们将详细探讨如何利用DOM4J库来读取XML文件。 1. **安装DOM4J** 要使用DOM4J,首先需要将其添加到你的...
在Java编程中,DOM4J是一个非常流行的XML处理库,它提供了一套强大的API来创建、解析和操作XML文档。本教程将详细讲解如何利用DOM4J进行XML文件的创建和读取。首先,我们需要了解DOM4J的核心概念,如Element、...
接下来,我们将创建一个`SAXReader`实例,它是DOM4J中的解析器,用于读取XML文件: ```java SAXReader reader = new SAXReader(); ``` 然后,使用`reader`读取XML文件并获取`Document`对象,`Document`代表整个XML...
DOM4J是Java环境中一个强大、灵活的XML处理库,它提供了XML的读取、写入、解析和操作的能力。本篇文章将深入探讨如何利用DOM4J库来实现XSD对XML文档的校验,以确保XML文件符合预先设定的数据结构规则。 首先,理解...
基于dom4j的读写xml文件的工具包。封装了dom4j操作xml文档的常和方法。 支持两种读写方法。1:针对小文件的读取整个文档,2:针对大文件的,逐行读取。读到几百M文件毫无压力。
在Java中,解析XML文件是常见的任务,通常有DOM(Document Object Model)和DOM4J两种方式。下面我们将详细探讨这两种解析方法。 DOM解析方式是将整个XML文件加载到内存中,形成一棵DOM树,每个节点代表XML文档的一...
在Java中,读取XML文件有多种方法,本文将介绍四种常见的方法:DOM、DOM4J、JDOM和SAX。 DOM(Document Object Model) DOM是W3C组织制定的XML文档对象模型,它提供了对XML文档的树形结构表示。使用DOM方法读取XML...
Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...
要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...
本篇文章将详细介绍如何使用DOM(Document Object Model)和DOM4j这两种流行的方法来解析XML文件。 首先,DOM是一种标准的W3C推荐的解析XML的方法,它将整个XML文档加载到内存中,形成一个树形结构,便于程序进行...
- **配置文件解析**: 许多应用使用XML作为配置文件的格式,DOM4J可以方便地读取和更新这些配置信息。 - **Web服务**: 在SOAP等协议中,XML是常用的数据传输格式,DOM4J能够帮助构建和解析这些XML消息。 - **文档生成...
在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是Apache软件基金会的一个项目,它通过定义项目对象模型(Project Object Model,POM)来管理项目的构建、...
### 使用Dom4j读取XML文件的方法详解 #### 一、引言 在Java开发过程中,经常需要处理各种格式的数据文件,其中XML(可扩展标记语言)作为一种标准的数据交换格式被广泛使用。为了高效地解析和操作XML文档,开发者...
总之,DOM4J提供了一种简单易用的方式来创建、解析和操作XML文档。通过熟练掌握DOM4J,开发者可以更好地处理XML数据,提升工作效率。在实际开发中,结合其他Java XML处理技术,如SAX和StAX,可以灵活应对各种XML处理...
1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...
与传统的DOM API相比,DOM4J更注重Java集合框架的集成,使得操作XML文档更加直观和高效。DOM4J的主要特点包括: 1. **面向对象的设计**:DOM4J将XML元素、属性、文本等都封装为Java对象,通过这些对象可以直接进行...
本文将深入探讨如何使用DOM4J库来读取XML文件。 首先,让我们理解DOM4J的基本概念。DOM4J是基于DOM模型的,DOM(Document Object Model)是一种标准的API,用于解析XML文档并将其表示为一棵由节点组成的树形结构。...