- 浏览: 590913 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
Mr_胡:
确实是jquery版本问题,用新版本的jquery没用
Eclipse 支持jQuery 自动提示 -
redcoatjk:
那遇到事务怎么办?事务是配置到service上.在Listen ...
Listener中取Spring容器中Bean的实例 -
dqd979231776:
+1我用遇到了这个问题,解决了好长时间
<input type="image"> 和 <img> 用法区别 -
李庆辉:
Listener中取Spring容器中Bean的实例 -
骑驴走天下:
膜拜大神,讲的清楚明白,今天正好遇到这个问题,本想用大神说的第 ...
Listener中取Spring容器中Bean的实例
虽然DOM4J 代表了完全独立的开发结果,但最初,它是JDOM 的一种智能分支。它合并了许多超出基本XML 文档表示的功能,包括集成的XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项,它通过 DOM4J API 和标准DOM 接口具有并行访问功能。从 2000 下半年开始,它就一直处于开发之中。 为支持所有这些功能,DOM4J 使用接口和抽象基本类方法。DOM4J 大量使用了API 中的 Collections 类,但是在许多情况下,它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是,虽然 DOM4J 付出了更复杂的 API 的代价,但是它提供了比 JDOM 大得多的灵活性。
在添加灵活性、XPath 集成和对大文档处理的目标时,DOM4J 的目标与 JDOM 是一样的:针对 Java 开发者的易用性和直观操作。它还致力于成为比 JDOM 更完整的解决方案,实现在本质上处理所有 Java/XML 问题的目标。在完成该目标时,它比 JDOM 更少强调防止不正确的应用程序行为。
|
DOM4J 是一个非常非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。如今你可以看到越来越多的 Java 软件都在使用 DOM4J 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 DOM4J。
注意:
dom4j1.6解压后有一个dom4j-1.6.1.jar文件,这就是应用时需要引入的类包,另外还有一个jaxen-1.1-beta-6.jarr文件,一般也需要引入,否则执行时可能抛java.lang.NoClassDefFoundError: org/jaxen/JaxenException异常,其他的包可以选择用之。
|
import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import java.util.Iterator; import java.util.List; import org.dom4j.Attribute; import org.dom4j.Document; 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 Dom4jDemo { public void createXML() { //用工厂类创建一个document实例 Document doc = DocumentHelper.createDocument(); //创建根元素emps Element rootEle = doc.addElement("emps"); //添加注释 rootEle.addComment("这是一个dom4j生成的xml文件"); //emps根节点下创建一个emp节点 Element empEle = rootEle.addElement("emp"); //emp添加属性id="1" empEle.addAttribute("id", "1"); //emp节点下创建一个name节点 Element nameEle = empEle.addElement("name"); //name节点下创建一个文本节点zhangsan nameEle.setText("zhangsan"); //再为name节点创建一个兄弟节点 Element sexEle = empEle.addElement("sex"); sexEle.setText("man"); //将document中的内容写入文件中 try { Writer out = new FileWriter("F:\\emps.xml"); //格式化输出,类型IE浏览一样 OutputFormat format = OutputFormat.createPrettyPrint(); //OutputFormat format = OutputFormat.createCompactFormat(); format.setEncoding("UTF-8"); //创建写出对象 XMLWriter writer = new XMLWriter(out,format); writer.write(doc); writer.close(); System.out.println("生成emps.xml成功。"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("失败了。"); } } public void updateXML(){ try { //创建读入对象 SAXReader reader = new SAXReader(); //创建document实例 Document doc = reader.read("F:\\emps.xml"); //查找节点emp下的id属性 List<Object> listAttr = doc.selectNodes("/emps/emp/@id"); Iterator<Object> itAttr = listAttr.iterator(); while(itAttr.hasNext()){ Attribute attr = (Attribute) itAttr.next(); //emp属性修改为001 attr.setValue("001"); } //查找emp下的name节点 List<Object> listText = doc.selectNodes("/emps/emp/name"); Iterator<Object> itText = listText.iterator(); while(itText.hasNext()){ Element textEle = (Element) itText.next(); //name节点的文本内容修改为"张三" textEle.setText("张三"); } //查找emp节点 List<Object> listEle = doc.selectNodes("/emps/emp"); Iterator<Object> itEle = listEle.iterator(); while(itEle.hasNext()){ Element empEle = (Element) itEle.next(); //查找emp下的sex节点 Iterator<Object> itSex = empEle.elementIterator("sex"); while(itSex.hasNext()){ Element sexEle = (Element) itSex.next(); //删除sex节点 empEle.remove(sexEle); } } //创建写出流 Writer out = new FileWriter("F:\\emps(update).xml"); // 格式化输出 OutputFormat format = OutputFormat.createPrettyPrint(); //OutputFormat format = OutputFormat.createCompactFormat(); format.setEncoding("UTF-8"); //创建写出对象 XMLWriter writer = new XMLWriter(out,format); writer.write(doc); writer.close(); System.out.println("生成emps(update).xml成功。"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { new Dom4jDemo().updateXML(); } }
发表评论
-
More than one fragment with the name [spring_web] was found.
2019-04-19 13:38 3849项目跑的好好的。突然之间报错,不能tomcat启动。 报 ... -
Linux(CentOS7)tomcat8启动报错
2018-04-26 08:57 1299服务器:Centos7 ,Tomcat8 ,JDK8 项目 ... -
java中Double数值的计算。
2011-12-21 17:31 22771double的计算不精确,会有类似0.000000000 ... -
java中连接池的原理,既常用的连接池有哪几种?
2011-05-16 08:46 3166java中数据库的连接是一个非常耗资源的动作,频繁的建立 ... -
Statement 和PreparedStatement的区别
2011-05-16 08:43 14301. Statement用于处理静态 SQL 语句, P ... -
java中的接口是什么?面向接口编程的好处?
2011-05-16 08:40 2118Java中的接口是一系列方法的声明,是一些方法特征的集 ... -
PrintWriter 类中println和write方法的区别
2011-05-10 08:32 2128问题:编写Socket聊天软件,使用PrintWriter类取 ... -
java class文件反编译---jad、jadclipse
2011-05-05 17:50 2581eclipse的java的class文件的反编译工具:jad ... -
Access restriction: The type SwingUtilities2 is not accessible due to restricti
2011-03-16 09:20 2235报错:Access restriction: The type ... -
java线程的sleep(),wait(),notify(),yield()方法的区别要点
2011-03-03 16:38 19681.sleep()使线程休眠一段时间,一段时间结束后,线程 ... -
java中的栈内存和堆内存
2010-12-15 17:37 1253Java把内存分成两种 ... -
Java泛型再学习
2010-09-30 15:20 1288泛型引入java语言已经有很长一段时间了,在JDK5出来的 ... -
读写properties 文件
2010-01-21 17:08 2423/** * 通用IO类。读取,写入properties文件 ... -
该文件不具有良好格式:DOCTYPE-ExternalID的名称既是SYSTEM又是PUBLIC!
2009-08-12 11:50 2660<?xml version="1.0" ... -
网站单例登录
2009-04-07 13:31 2030实现网站的单例登录: 1, 在用户表里增加一个判断登 ... -
log4j.log4j.properties大全
2009-03-19 06:59 1452log4j.rootLogger=DEBUG,CONSOLE, ... -
JSP指令元素简介
2009-01-14 16:30 1509指令元素(Directives ... -
时间处理类
2008-09-03 18:09 1367/** * 时间处理类 */ package org.bo ... -
java MD5 加密
2008-08-23 17:30 2103/** * java.security包中的MessageD ... -
自动得到汉语拼音
2008-08-23 17:27 1445import java.util.Iterator; impo ...
相关推荐
**DOM4J 读取XML字符串** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得更加简单。DOM4J 的设计理念是简洁、灵活且高性能,它支持 SAX 和 DOM 解析,并提供了面向对象的接口。...
在本文中,我们将深入探讨DOM4J如何进行XML操作,包括增加、删除和修改XML元素。 首先,我们需要理解XML的基本结构。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,它使用标签来描述数据。DOM4J通过...
DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件DOM4j操作xml文件
要使用DOM4J读取XML文档,首先需要创建一个`SAXReader`对象,然后调用`read`方法传入XML文件路径。这将返回一个`Document`对象,我们可以从中获取所有元素信息。 ```java File file = new File("path_to_xml_file")...
### 使用dom4j读取XML的四种方法 在Java开发中,处理XML文件是一种常见的需求。Dom4j作为一款简洁高效的Java库,被广泛应用于解析、操作XML文档。本文将详细介绍使用dom4j读取XML文件的四种常见方法,并通过示例...
首先,`XMLTest.java`是一个包含DOM4J操作XML的代码实例。通常,这样的程序会包含以下步骤: 1. 引入DOM4J库:在Java项目中,你需要导入DOM4J的相关类,如`org.dom4j.Document`、`org.dom4j.DocumentHelper`等。这...
本文将详细介绍如何使用DOM4J来读取XML文件中的信息。 ### DOM4J读取XML详解 #### 初始化资源路径 代码片段中的`URL url = this.getClass().getClassLoader().getResource("/")`这一行是获取类加载器的根目录路径...
本文将深入探讨如何使用DOM4J库来读取XML文件。 首先,让我们理解DOM4J的基本概念。DOM4J是基于DOM模型的,DOM(Document Object Model)是一种标准的API,用于解析XML文档并将其表示为一棵由节点组成的树形结构。...
#### 四、XPath表达式在DOM4J中的应用 DOM4J支持XPath表达式来查询XML文档中的节点,XPath表达式是查询XML文档的一种强大工具,能够精确地定位到文档中的任意节点。 - **基本的XPath表达式**: - `/AAA/BBB/CCC`...
### 使用dom4j操作XML详解 #### 一、DOM4j简介与配置 **DOM4j** 是一款专为Java平台设计的开源XML解析处理工具。它的设计充分考虑了性能和易用性,同时提供了对DOM、SAX及JAXP等标准的支持,因此非常适合进行复杂...
- **配置文件解析**: 许多应用使用XML作为配置文件的格式,DOM4J可以方便地读取和更新这些配置信息。 - **Web服务**: 在SOAP等协议中,XML是常用的数据传输格式,DOM4J能够帮助构建和解析这些XML消息。 - **文档生成...
Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...
### Java使用DOM4J读取XML知识点解析 #### 一、概述 在Java开发中,处理XML文件是一项常见的任务。DOM4J是一个简单且功能强大的Java库,用于处理XML文档。它提供了类似于DOM的API,但更为轻量级且易于使用。本篇将...
在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...
DOM4j则是一个强大的Java库,用于处理XML文档,提供了丰富的API来实现XML的读取、写入、修改等操作。在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是...
在提供的视频资源"17-dom4j解析xml文档(增删改查).avi"中,可能详细展示了这些操作的步骤和示例,观看该视频将进一步加深你对DOM4J操作XML的理解。记得实践是检验理论的最好方式,动手操作会让你更好地掌握这些知识...
**DOM4J解析XML的基本概念** DOM4J是Java中一个功能强大且...以上就是关于DOM4J读取XML的基本知识点和相关操作。在实际开发中,DOM4J不仅能够读取XML,还能帮助我们构建、修改XML文档,是Java处理XML的重要工具之一。
在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件。 首先,我们需要了解DOM4J的基本概念。DOM4J采用Document Object Model (DOM)接口,但它的实现比标准DOM更快,占用内存更...
DOM4J是一个强大的Java库,专门用于处理XML文档。...无论是在读取、创建、修改还是查询XML文档,DOM4J都能提供强大支持。通过实践这些基本操作,开发者可以轻松地在自己的项目中实现XML的增删改查功能。