自:http://hi.baidu.com/waltertan/blog/item/3e705cc7085187d7d0006053.html
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Dom4j_Test {
/**
* @param args
*/
//加载现有的xml文件到内存中
public void load(String paht){
Document doc = null;
Element root = null;
List<Element> list = null;
SAXReader reader = new SAXReader();
try {
doc = reader.read(new File(paht));
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(doc != null){
root = doc.getRootElement();
list = root.element("students").elements("student");
for(Iterator<Element> it=list.iterator();it.hasNext();){
Element element = it.next();
System.out.print(element.attributeValue("id")+" "+element.elementText("name")+" ");
System.out.println(element.elementText("gender"));
}
}
}
//创建一个xml的数据岛,并写进数据
public void create(String path){
Document document = DocumentHelper.createDocument();
Element root = document.addElement("root");
Element elm = root.addElement("book");
elm.addText("Java");
root.addElement("book").addAttribute("id", "2").addText("C#");
try {
XMLWriter writer = new XMLWriter(new FileWriter(path));
writer.write(document);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//更新现有的xml文件(以追加元素为例)
public void update(String path){
SAXReader reader = new SAXReader();
Document doc = null;
try {
doc = reader.read(new File(path));//将现有的xml文件读进内存
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//开始修改xml文件(在内存中修改)
if(doc != null){
Element elm = doc.getRootElement().element("students");
Element elm2 = elm.addElement("student").addAttribute("id", "3");
elm2.addElement("name").addText("Jennet");
elm2.addElement("gender").addText("female");
//将修改后的xml文件写到磁盘上
try {
XMLWriter writer = new XMLWriter(new FileWriter(path));
writer.write(doc);
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Dom4j_Test test = new Dom4j_Test();
test.create("my2.xml");
test.load("my1.xml");
test.update("my1.xml");
}
}
分享到:
相关推荐
DOM4J提供了一种简单的方法来加载XML和XSD文件,然后使用Schema类进行校验。以下是一个基本的步骤概述: 1. 加载XSD文件:使用DOM4J的DocumentHelper类的parse方法,传入XSD文件的路径,得到一个SchemaFactory对象...
这个压缩包包含了DOM4J的完整版本,适用于那些希望在Java项目中使用DOM4J进行XML操作的开发者。 首先,让我们深入了解一下DOM4J的核心概念和特性: 1. **Document对象**:DOM4J中的Document对象代表整个XML文档。...
对于已存在的XML文档,DOM4J也提供了方便的方法进行修改。例如,添加、删除或更新元素和属性: ```java // 添加元素 Element newChild = doc.createElement("newChild"); parentElement.add(newChild); // ...
4. **XML文档构建**:DOM4J允许动态构建XML文档,通过`DocumentFactory`可以创建XML元素,并逐层添加子元素和属性,构建复杂的XML结构。 5. **XML文档操作**:DOM4J提供了丰富的API,如添加、删除、移动和复制XML...
### DOM4J解析XML知识点详解 ...通过结合使用DOM4J的基本类和XPath表达式,可以轻松地实现对XML文档的查询和修改。无论是对于开发人员还是对于那些需要频繁处理XML数据的应用程序来说,DOM4J都是一个非常有价值的工具。
在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...
DOM4J还允许我们对XML进行修改,如添加、删除或更新元素和属性。例如,添加新元素: ```java Element newElement = DocumentHelper.createElement("newElement"); newElement.setText("New Value"); root...
创建XML文件时,我们可以使用DOM4J的`DocumentFactory`和`Element`类。首先,创建一个`Document`实例,然后定义根元素,接着添加子元素和属性。例如,创建一个名为`books`的根元素,包含若干`book`子元素,每个`...
本篇文章将详细介绍如何使用DOM(Document Object Model)和DOM4j这两种流行的方法来解析XML文件。 首先,DOM是一种标准的W3C推荐的解析XML的方法,它将整个XML文档加载到内存中,形成一个树形结构,便于程序进行...
Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得...通过理解上述DOM4J解析XML的基本概念、操作和示例,开发者可以有效地在Java项目中处理XML数据,无论是读取、创建还是修改XML文件。
7. **Reader和Writer**:DOM4J提供了各种Reader和Writer接口,用于读取和写入XML数据,如StringReader、StringWriter、FileReader、FileWriter等。 **DOM4J的使用步骤:** 1. **导入依赖**:在项目中添加DOM4J库的...
DOM4J作为一个解析器,可以将XML文档转换为一个可操作的Java对象模型,方便我们进行数据的读取和写入。 在`Dom4jTest1.java`中,程序通常会包含以下步骤: 1. 引入DOM4J库:首先,我们需要在Java源代码中引入DOM4J...
5. **DOM4J与JAXB(Java Architecture for XML Binding)对比**:虽然两者都可以处理XML,但DOM4J更侧重于底层的XML操作,而JAXB则用于将Java对象和XML之间进行自动转换,更适用于对象和XML映射的需求。 6. **示例...
在"dom4j_XML"这个例子中,可能包含了创建一个XML文件,然后用DOM4J进行解析和操作的完整流程。开发者可能会学习如何读取XML文件,获取特定元素的值,修改元素或属性,以及如何将修改后的文档保存回XML文件。这样的...
"以及解析xml文档所用的pdf文档说明"则表明还有一个PDF文档,可能详细介绍了如何使用dom4j来解析XML文件,包括各种方法、类和接口的使用示例。 **dom4j解析XML文档知识点:** 1. **dom4j简介**:dom4j是一个开放...
同时,DOM4J对内存和CPU的使用效率更高,尤其是在处理大型XML文件时。 在压缩包文件"复件 dom"中,可能包含了示例代码或教程,用于演示如何使用DOM4J和本地DOM解析XML文件。通过查看这些文件,你可以更深入地了解两...
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件、文档存储...结合“jar包执行20190331.rar”文件中的实例,开发者可以深入学习和实践DOM4J的使用,进一步提升XML处理能力。
通过这种方式,dom4j提供了一种高效且易于使用的途径来处理XML文档,无论是创建新的XML结构还是对现有文档进行操作。它的灵活性和性能使得它在处理大量XML数据时成为Java开发者的首选工具之一。
DOM4J是一个强大的Java库,...总的来说,`XMLTest.java`中的示例应该展示了DOM4J如何加载XML文件,获取元素和属性,以及进行简单的修改。通过对这个示例的学习,你可以进一步掌握DOM4J的用法,从而更好地处理XML文档。