package dom;
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.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class TestDom4j {
public void createXml(String outfilename){
Document doc = DocumentHelper.createDocument();
Element books = doc.addElement("books");
Element book = books.addElement("book");
book.addAttribute("show", "no");
Element title = book.addElement("title");
title.addText("mybook");
Element book1 = books.addElement("book");
book1.addAttribute("show", "no");
Element title1 = book1.addElement("title");
title1.addText("mybook1");
Element book2 = books.addElement("book");
book2.addAttribute("show", "no");
Element title2 = book2.addElement("title");
title2.addText("mybook2");
Element owner = books.addElement("owner");
owner.addText("myself");
try{
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK"); // 指定XML编码
XMLWriter output = new XMLWriter(
new FileWriter( new File((outfilename))),format);
output.write(doc);
output.flush();
output.close();
}
catch(IOException e){
System.out.println(e.getMessage());
}
}
public void changeXML(String filename,String newfilename ){
try{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(filename));
/** 修改内容之一: 如果book节点中show参数的内容为book2,则delete */
/** 先用xpath查找对象 */
List list = document.selectNodes("/books/book");
Iterator iter = list.iterator();
while(iter.hasNext()){
Element bookElement = (Element)iter.next();
Iterator iterator = bookElement.elementIterator("title");
while(iterator.hasNext()){
Element titleElement=(Element)iterator.next();
if(titleElement.getText().equals("mybook2")){
Element parElement=bookElement.getParent();
System.out.println("point1");
parElement.remove(bookElement);
}
}
}
/** 修改内容之一: 如果book节点中owner参数的内容为myself,则改为public */
/** 先用xpath查找对象 */
list = document.selectNodes("/books/owner");
iter = list.iterator();
if(iter.hasNext()){
Element ownerElement = (Element)iter.next();
ownerElement.setText("me");
}
/**输出到修改后的文件*/
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK"); // 指定XML编码
XMLWriter output = new XMLWriter(
new FileWriter( new File((newfilename))),format);
output.write(document);
output.flush();
output.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
public static void main(String args[]){
TestDom4j testdom=new TestDom4j();
testdom.createXml("d:/output.xml");
testdom.changeXML("d:/output.xml","d:/modify.xml");
System.out.println("well done!");
}
}
分享到:
相关推荐
在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...
为了使用这个库,你需要将该jar包添加到项目的类路径中,然后就可以通过DOM4J提供的类和方法来解析和操作XML文件了。 总之,DOM4J是一个功能强大的XML处理库,无论是在小型项目还是大型系统中,都能发挥其优势,...
在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...
2. **创建XML文件**:使用DOM4j创建一个新的XML文件,这通常涉及到`Document`、`Element`和`Writer`的使用。例如,你可以创建一个包含根元素和子元素的XML文件。 3. **动态创建XML节点**:在已有的XML文档中动态...
在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...
以下是一个简单的DOM4J代码示例,展示如何使用DOM4J删除XML文档中的一个节点: ```java import java.io.FileOutputStream; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j....
DOM4J还允许我们对XML进行修改,如添加、删除或更新元素和属性。例如,添加新元素: ```java Element newElement = DocumentHelper.createElement("newElement"); newElement.setText("New Value"); root...
Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...
在本文中,我们将深入探讨DOM4J如何进行XML操作,包括增加、删除和修改XML元素。 首先,我们需要理解XML的基本结构。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,它使用标签来描述数据。DOM4J通过...
使用SAXReader类可以从XML文件创建一个Document对象。例如: ```java SAXReader reader = new SAXReader(); Document document = reader.read("example.xml"); ``` 之后,我们可以遍历Document对象,获取元素...
- `org.dom4j.io.*`:用于读写XML文件的类。 - `java.util.*`:用于集合操作等。 - **创建文档实例**: - 使用`DocumentHelper.createDocument()`方法创建一个新的`Document`对象。 - **添加注释**: - 使用`...
5. **XML文档操作**:DOM4J提供了丰富的API,如添加、删除、移动和复制XML节点,以及修改节点内容和属性值。这些功能使得对XML文档的维护和更新变得非常方便。 6. **XPath和XSLT转换**:除了基本的XML操作,DOM4J还...
这篇博客主要探讨了如何使用DOM4J进行XML文档的操作,包括添加、删除和修改元素。下面将详细阐述DOM4J库的核心概念以及在XML操作中的具体应用。 DOM4J的全称是“Document Object Model for Java”,它是基于Java的...
在本文中,我们将深入探讨如何利用DOM4J进行XML文件的读取、写入和修改操作。 一、XML基础 XML(Extensible Markup Language)是一种标记语言,用于存储和传输结构化数据。它具有自解释性,使得数据在不同的系统间...
在这个例子中,我们将深入理解DOM4J如何解析XML文件,同时也会探讨一些相关工具的使用。 XML(eXtensible Markup Language)是一种结构化数据格式,广泛应用于数据交换、配置文件等领域。DOM(Document Object ...
在"dom4j_XML"这个例子中,可能包含了创建一个XML文件,然后用DOM4J进行解析和操作的完整流程。开发者可能会学习如何读取XML文件,获取特定元素的值,修改元素或属性,以及如何将修改后的文档保存回XML文件。这样的...
8. **保存修改**:最后,如果你想保存对XML文件的修改,可以使用`OutputStream`: ```java OutputStream out = new FileOutputStream("path_to_save_file.xml"); document.write(out); out.close(); ``` 通过这些...
DOM4J是一个强大的Java库,专门用于处理XML文档。它是一个灵活且高性能的库,提供了丰富的API来解析、创建、修改XML文档。...结合实际应用,DOM4J可以帮助开发者更便捷地解析、创建和维护XML文件。