- 浏览: 1150858 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
RebeccaZhong:
严重: StandardWrapper.Throwableco ...
三步发布java方式的rest服务 -
RebeccaZhong:
严重: StandardWrapper.Throwableco ...
三步发布java方式的rest服务 -
冷酷月光:
楼主。请教一下。arcgis for android 有提供地 ...
ArcGIS API For Android离线地图的实现 -
winney117:
请问如何GET已有网页上的指定内容?比如百度文库中的某一篇文章 ...
三步发布java方式的rest服务 -
zige1012:
您好,我想问问我想换个自己地图的切片,也有4层(L0-L3), ...
ArcGIS API For Android离线地图的实现
DOM4j是一个易用的,开源的JAVA操作XML的API,写过一篇4种XML操作API的比较,DOM4j是性能和易用行最佳的。因此做一个小教程,供初学者学习。
学习DOM4j首先就先来了解下它主要的包
DOM4j所有的接口都在org.dom4j这个包里定义着
org.dom4j.Attribute : Attribute接口定义了XML文件的属性
org.dom4j.Branch : Branch为能够包含子节点的节点如XML元素和文档定义了一个公共行为
org.dom4j.CDATA : CDATA定义了XML CDATA区域
org.dom4j.CharacterData: CharacterData是一个标识接口,标识基于字符的节点。
org.dom4j.Comment : Comment定义了XML注释的行为
org.dom4j.Document : Docement接口定义了XML文档
org.dom4j.Element : Element定义了XML元素
org.dom4j.ElementHandler: ElementHandler定义了Element对象的处理器
org.dom4j.ElementPath : 被ElementHandler使用,用于取得当前正在处理的路径层次信息
org.dom4j.Entity : Entity定义XML entity
org.dom4j.Node : Node为所有的dom4j中XML节点定义了多态行为
org.dom4j.NodeFilter : NodeFilter定义了在dom4j节点中产生的一个滤镜或谓词的行为
org.dom4j.ProcessingInstruction : ProcessingInstruction定义XML处理指令
org.dom4j.Text : Test定义了XML文本节点
org.dom4j.Visitor : Visitor用于实现Visitor模式
org.dom4j.XPath : XPath在分析一个字符串后会提供一个XPath表达式
下面说下主要的实用方法
1: 读取并解析XML文档:
读写XML文档主要依赖于org.dom4j.io包,提供了DOMReader和SAXReader两类不同方式,调用方式一样。
2:取得ROOT节点
如果要读取一个XML文件,最重要的就是要读取ROOT节点了,一切分析XML都是从ROOT节点开始。
3:遍历XML树,这里有二种方法
(1): 枚举
(2) : 递归
4:字符串与XML的转换
5. 创建XML
6: XML 文件输出
DOM4j 的简单常用的方法上面总结了下,大家可以有一个印象,想要学的仔细了就要自己好好研究了,下面有一个以前写的小程序,实现了创建和编辑XML文件的功能。
学习DOM4j首先就先来了解下它主要的包
DOM4j所有的接口都在org.dom4j这个包里定义着
org.dom4j.Attribute : Attribute接口定义了XML文件的属性
org.dom4j.Branch : Branch为能够包含子节点的节点如XML元素和文档定义了一个公共行为
org.dom4j.CDATA : CDATA定义了XML CDATA区域
org.dom4j.CharacterData: CharacterData是一个标识接口,标识基于字符的节点。
org.dom4j.Comment : Comment定义了XML注释的行为
org.dom4j.Document : Docement接口定义了XML文档
org.dom4j.Element : Element定义了XML元素
org.dom4j.ElementHandler: ElementHandler定义了Element对象的处理器
org.dom4j.ElementPath : 被ElementHandler使用,用于取得当前正在处理的路径层次信息
org.dom4j.Entity : Entity定义XML entity
org.dom4j.Node : Node为所有的dom4j中XML节点定义了多态行为
org.dom4j.NodeFilter : NodeFilter定义了在dom4j节点中产生的一个滤镜或谓词的行为
org.dom4j.ProcessingInstruction : ProcessingInstruction定义XML处理指令
org.dom4j.Text : Test定义了XML文本节点
org.dom4j.Visitor : Visitor用于实现Visitor模式
org.dom4j.XPath : XPath在分析一个字符串后会提供一个XPath表达式
下面说下主要的实用方法
1: 读取并解析XML文档:
读写XML文档主要依赖于org.dom4j.io包,提供了DOMReader和SAXReader两类不同方式,调用方式一样。
// 从文件读取XML,输入文件名,返回XML文档 public Document read(String fileName) throws MalformedURLException, DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(new File(fileName)); return document; }
2:取得ROOT节点
如果要读取一个XML文件,最重要的就是要读取ROOT节点了,一切分析XML都是从ROOT节点开始。
public Element getRootElement(Document doc){ return doc.getRootElement(); }
3:遍历XML树,这里有二种方法
(1): 枚举
// 枚举所有子节点 for ( Iterator i = root.elementIterator(); i.hasNext(); ) { Element element = (Element) i.next(); // do something } // 枚举名称为foo的节点 for ( Iterator i = root.elementIterator(foo); i.hasNext();) { Element foo = (Element) i.next(); // do something } // 枚举属性 for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next(); // do something }
(2) : 递归
public void treeWalk() { treeWalk(getRootElement()); } public void treeWalk(Element element) { for (int i = 0, size = element.nodeCount(); i < size; i++){ Node node = element.node(i); if (node instanceof Element) { treeWalk((Element) node); } else { // do something.... } } }
4:字符串与XML的转换
// XML转字符串 Document document = ...; String text = document.asXML(); // 字符串转XML String text = James ; Document document = DocumentHelper.parseText(text);
5. 创建XML
//这里创建一个XML,没有写 public Document createDocument() { Document document = DocumentHelper.createDocument(); Element root = document.addElement(root); Element author1 = root .addElement(author) .addAttribute(name, James) .addAttribute(location, UK) .addText(James Strachan); Element author2 = root .addElement(author) .addAttribute(name, Bob) .addAttribute(location, US) .addText(Bob McWhirter); return document; }
6: XML 文件输出
FileWriter out = new FileWriter( foo.xml ); document.write(out);
DOM4j 的简单常用的方法上面总结了下,大家可以有一个印象,想要学的仔细了就要自己好好研究了,下面有一个以前写的小程序,实现了创建和编辑XML文件的功能。
package com.dom4j.test; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; public class NewXML { /** * * 用DOM4J创建一个XML文件 * @param args */ public boolean newXMl(String fileName){ boolean returnValue=false; //定义一个XML文档 Document docement=DocumentHelper.createDocument(); //设置XML文档的元素 Element rootElement=docement.addElement("DOM4J创建XML文档"); rootElement.addComment("镜花水月2007-4-24晚上创建"); Element nameElement=rootElement.addElement("镜花水月"); nameElement.addAttribute("名字","不告诉你"); Element schoolElement=nameElement.addElement("学校"); schoolElement.setText("西安翻译学院"); Element cityElement=rootElement.addElement("城市"); cityElement.setText("上海"); Element homeElement=cityElement.addElement("住址"); homeElement.setText("徐家汇"); //创建XML文档 try { /** 格式化输出,类型IE浏览一样 */ OutputFormat format = OutputFormat.createPrettyPrint(); /** 指定XML编码 */ format.setEncoding("GBK"); XMLWriter writer=new XMLWriter(new FileWriter(new File(fileName)),format); writer.write(docement); writer.close(); return returnValue=true; } catch (IOException e) { e.printStackTrace(); } return returnValue; } /** * * 用DOM4J修改一个XML文件 * @param args * */ public boolean update(String fileName,String newFileName){ boolean returnValaue=false; SAXReader reader=new SAXReader(); try { Document docement=reader.read(new File(fileName)); List list=null; list=docement.selectNodes("/DOM4J创建XML文档/镜花水月/@名字"); Iterator it=list.iterator(); while(it.hasNext()){ Attribute attribute=(Attribute) it.next(); if(attribute.getValue().equals("不告诉你")){ attribute.setValue("还是不告诉你"); } } //将就该写入新的文件 try { //转码 OutputFormat format=OutputFormat.createPrettyPrint(); format.setEncoding("GBK"); XMLWriter writer=new XMLWriter(new FileWriter(new File(newFileName)),format); writer.write(docement); writer.close(); return returnValaue=true; } catch (IOException e) { e.printStackTrace(); } } catch (DocumentException e) { e.printStackTrace(); } return returnValaue; } public static void main(String[] args) { NewXML newXml=new NewXML(); String name="newXML.xml"; String newName="UpdateXML.xml"; if(!newXml.newXMl(name)){ System.out.println("创建出现错误!"); return ; }else{ System.out.println("创建XML成功!"); } if(!newXml.update(name,newName)){ System.out.println("修改出现错误!"); return; }else{ System.out.println("修改XML成功"); } } }
<?xml version="1.0" encoding="GBK"?> <DOM4J创建XML文档> <!--镜花水月2007-4-24晚上创建--> <镜花水月 名字="不告诉你"> <学校>西安翻译学院</学校> </镜花水月> <城市>上海 <住址>徐家汇</住址> </城市> </DOM4J创建XML文档>
发表评论
-
Java中文排序
2011-06-14 13:11 1774所谓中文排序就是按照汉语拼音的顺序进行排序,在Java中进行排 ... -
三步发布java方式的rest服务
2010-10-18 09:47 19483大家好: 最近大家都想知道怎么发布一个java的rest方式的 ... -
JDK路径设置全解
2010-05-28 23:44 1692PATH:.;D:\Java\jdk1.6.0_10\bin ... -
java.util.Properties类的使用
2009-02-10 10:21 1826Properties 类已不是新东西了,它在 Java 编程的 ... -
java导入导出excel操作(jxl),整理中。。。
2009-02-10 10:15 4061jxl.jar 包 下载地址: http://www.and ... -
使用Struts和Velocity开发web应用
2008-12-25 23:31 1420http://www.edu999.com/IT/JAVA/2 ... -
关于JAVA断点续传
2008-10-18 10:20 2184SiteFileFetch.java负责整个文件的抓取,控制内 ... -
Spring中Quartz的配置实例
2008-10-13 15:29 2085Quartz是一个强大的企业级任务调度框架,Spring中继承 ... -
Spring中Quartz的Cron配置说明
2008-10-13 10:43 3345一个Cron-表达式是一个 ... -
在Hibernate应用中如何处理批量更新和批量删除?
2008-10-07 10:03 1148批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务 ... -
Servlet和Filter的url匹配以及url-pattern详解
2008-09-22 16:33 1895Servlet和filter是J2EE开发 ... -
动态代理(Dynamic Proxy)Java Servlet
2008-09-16 21:02 2101从JDK1.3开始,Java就引入了动态代理的概念。动态代理( ... -
用Java动态代理实现AOP
2008-09-16 20:36 1084目前整个开发社区对AOP(Aspect Oriented Pr ... -
JAVA中的反射机制详解
2008-09-16 14:44 2144JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个 ... -
从查询串中分离请求参数——acegi security中SecurityContextHolderA
2008-09-03 17:57 1996大多数情况下我们是不需要单独处理HttpServletRequ ... -
使用RememberMeProcessingFilter来实现cookies自动登陆
2008-09-03 17:56 2187要使用cookies自动登陆,我们需要配置过滤器Remembe ... -
Acegi concurrent session
2008-09-03 16:33 1342. <bean id="concurrent ... -
Web开发中的Listener和Filter
2008-08-28 16:12 2988http://www.javadby.com/Web_Serv ... -
关于struts2无法加载struts.properties的问题
2008-08-15 15:17 1689最近整合了struts2和spring的问题,其中看到一个st ... -
Hibernate配置详解
2008-08-02 23:19 1733表 3.3. Hibernate配置属 ...
相关推荐
**DOM4J使用教程** DOM4J是一款非常优秀的Java XML API,它提供了全面而强大的功能,包括XML的解析、创建、修改以及查询等操作。在Java世界中,DOM4J因其简单易用和高效性而备受青睐。这篇教程将深入探讨DOM4J的...
下面将详细讲解DOM4J的主要特性和使用方法。 ### 1. DOM4J的基本概念 - **Document**: XML文档的根节点,表示整个XML结构。 - **Element**: 表示XML文档中的元素,每个元素都有一个标签名,可以包含属性和子元素。...
### DOM4j 使用详解 #### 一、简介 DOM4j是一种用于处理XML文档的Java库,它提供了灵活且高效的方式来解析、修改和创建XML文件。相比于标准的DOM和SAX API,DOM4j提供了更加简洁易用的API,使得开发者能够更轻松地...
通过阅读和实践DOM4J的帮助文档和使用教程,开发者可以全面掌握DOM4J的各种特性和用法,从而更高效地处理XML数据。这个压缩包提供的资料全面且详细,对于想要深入理解DOM4J的Java开发人员来说,是一份非常宝贵的资源...
例如,`DOM4j使用教程 - 关于WEB开发的思考之JAVA技术O_Lions - JavaEye技术网站.mht`和`DOM4J使用教程 - - JavaEye技术网站.mht`可能是两篇关于DOM4j的教程文章,详细介绍了如何在Web开发中使用DOM4j。而`dom4j-...
**Dom4j学习教程+API** Dom4j是一款强大的Java XML处理库,它提供了一种灵活的方式来处理XML文档。这个教程结合API文档,为开发者提供了深入理解并掌握Dom4j的绝佳资源。以下是对Dom4j核心概念和功能的详细说明。 ...
### DOM4j 教程与实例详解 #### 一、DOM4j简介 DOM4j是一种用于处理XML的Java API,其设计目的是提供一个高效、功能丰富且易于使用的API。DOM4j是一个开源项目,可以在SourceForge等开源平台上获取到。DOM4j不仅在...
#### 四、DOM4j使用示例 下面是一个简单的示例,演示如何使用DOM4J来读取XML文件: ```java import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Dom4jExample {...
这个标签直接关联了DOM4J库的核心文件,表明讨论的内容与DOM4J的使用和特性有关。 **文件名称列表:xml** 这个列表只包含了一个条目"xml",可能意味着压缩包中包含的是与XML相关的文件或资源,可能是XML示例文件、...
DOM4J在Java社区中被广泛使用,尤其是在处理大型XML文档时,其性能表现优于标准的DOM API。 在XML解析方面,DOM4J支持多种模式,包括SAX(Simple API for XML)和DOM。SAX是事件驱动的解析器,适合处理大文件,因为...
DOM4J在Java社区中被广泛使用,尤其是在Spring框架中,用于配置文件的解析。在这个教程中,我们将深入探讨DOM4J的核心概念和常见操作。 1. **XML解析**:DOM4J支持SAX和DOM两种解析方式。SAX是事件驱动的解析,适用...
Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j学习教程Dom4j...
《Dom4j_教程网页收集》 《Dom4j_教程网页收集》 《Dom4j_教程网页收集》
- **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...
学习帮助文档`0_02013011112572651533851383.chm`通常是一个Windows系统的帮助文件,可能包含了DOM4J的详细教程、API参考和示例代码,对于初学者来说是非常有价值的资源。CHM文件是Microsoft编写的HTML帮助格式,...
**PDF文档说明**:这个PDF文档可能是dom4j的官方用户指南或教程,包含了详细的API使用示例、最佳实践和常见问题解答。对于初次接触dom4j的开发者来说,这是一个宝贵的资源,可以帮助他们快速理解和掌握dom4j的使用...
dom4j下载dom4j下载dom4j下载dom4j下载dom4j下载dom4j下载dom4j下载dom4j下载dom4j下载