`

用dom4j对xml进行创建、加载和更新

阅读更多
自: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");
}
}


分享到:
评论

相关推荐

    XSD使用dom4j校验XML

    DOM4J提供了一种简单的方法来加载XML和XSD文件,然后使用Schema类进行校验。以下是一个基本的步骤概述: 1. 加载XSD文件:使用DOM4J的DocumentHelper类的parse方法,传入XSD文件的路径,得到一个SchemaFactory对象...

    dom4j解析xml文件的压缩包

    这个压缩包包含了DOM4J的完整版本,适用于那些希望在Java项目中使用DOM4J进行XML操作的开发者。 首先,让我们深入了解一下DOM4J的核心概念和特性: 1. **Document对象**:DOM4J中的Document对象代表整个XML文档。...

    dom4j解析和创建xml简单实例

    对于已存在的XML文档,DOM4J也提供了方便的方法进行修改。例如,添加、删除或更新元素和属性: ```java // 添加元素 Element newChild = doc.createElement("newChild"); parentElement.add(newChild); // ...

    dom4j解析XML所需jar包

    4. **XML文档构建**:DOM4J允许动态构建XML文档,通过`DocumentFactory`可以创建XML元素,并逐层添加子元素和属性,构建复杂的XML结构。 5. **XML文档操作**:DOM4J提供了丰富的API,如添加、删除、移动和复制XML...

    dom4j解析xml

    ### DOM4J解析XML知识点详解 ...通过结合使用DOM4J的基本类和XPath表达式,可以轻松地实现对XML文档的查询和修改。无论是对于开发人员还是对于那些需要频繁处理XML数据的应用程序来说,DOM4J都是一个非常有价值的工具。

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...

    dom4j解析xml实例

    DOM4J还允许我们对XML进行修改,如添加、删除或更新元素和属性。例如,添加新元素: ```java Element newElement = DocumentHelper.createElement("newElement"); newElement.setText("New Value"); root...

    用dom4j解析xml文件

    创建XML文件时,我们可以使用DOM4J的`DocumentFactory`和`Element`类。首先,创建一个`Document`实例,然后定义根元素,接着添加子元素和属性。例如,创建一个名为`books`的根元素,包含若干`book`子元素,每个`...

    分别使用DOM和DOM4j解析XML文件

    本篇文章将详细介绍如何使用DOM(Document Object Model)和DOM4j这两种流行的方法来解析XML文件。 首先,DOM是一种标准的W3C推荐的解析XML的方法,它将整个XML文档加载到内存中,形成一个树形结构,便于程序进行...

    java dom4j解析xml

    Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得...通过理解上述DOM4J解析XML的基本概念、操作和示例,开发者可以有效地在Java项目中处理XML数据,无论是读取、创建还是修改XML文件。

    DOM4J 解析XML

    7. **Reader和Writer**:DOM4J提供了各种Reader和Writer接口,用于读取和写入XML数据,如StringReader、StringWriter、FileReader、FileWriter等。 **DOM4J的使用步骤:** 1. **导入依赖**:在项目中添加DOM4J库的...

    dom4j 解析xml实例

    DOM4J作为一个解析器,可以将XML文档转换为一个可操作的Java对象模型,方便我们进行数据的读取和写入。 在`Dom4jTest1.java`中,程序通常会包含以下步骤: 1. 引入DOM4J库:首先,我们需要在Java源代码中引入DOM4J...

    dom4j_XML.rar_DOM4J_dom4j xml java_java xml_读写xml

    5. **DOM4J与JAXB(Java Architecture for XML Binding)对比**:虽然两者都可以处理XML,但DOM4J更侧重于底层的XML操作,而JAXB则用于将Java对象和XML之间进行自动转换,更适用于对象和XML映射的需求。 6. **示例...

    dom4j_XML.rar_DOM4J_dom4j xml

    在"dom4j_XML"这个例子中,可能包含了创建一个XML文件,然后用DOM4J进行解析和操作的完整流程。开发者可能会学习如何读取XML文件,获取特定元素的值,修改元素或属性,以及如何将修改后的文档保存回XML文件。这样的...

    dom4j-jar与dom4j解析xml文档介绍

    "以及解析xml文档所用的pdf文档说明"则表明还有一个PDF文档,可能详细介绍了如何使用dom4j来解析XML文件,包括各种方法、类和接口的使用示例。 **dom4j解析XML文档知识点:** 1. **dom4j简介**:dom4j是一个开放...

    使用dom4j 和本地dom 解析xml 文件

    同时,DOM4J对内存和CPU的使用效率更高,尤其是在处理大型XML文件时。 在压缩包文件"复件 dom"中,可能包含了示例代码或教程,用于演示如何使用DOM4J和本地DOM解析XML文件。通过查看这些文件,你可以更深入地了解两...

    xmldom4j解析

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件、文档存储...结合“jar包执行20190331.rar”文件中的实例,开发者可以深入学习和实践DOM4J的使用,进一步提升XML处理能力。

    使用dom4j解析XML

    通过这种方式,dom4j提供了一种高效且易于使用的途径来处理XML文档,无论是创建新的XML结构还是对现有文档进行操作。它的灵活性和性能使得它在处理大量XML数据时成为Java开发者的首选工具之一。

    dom4j读取XML,解析XML简单示例

    DOM4J是一个强大的Java库,...总的来说,`XMLTest.java`中的示例应该展示了DOM4J如何加载XML文件,获取元素和属性,以及进行简单的修改。通过对这个示例的学习,你可以进一步掌握DOM4J的用法,从而更好地处理XML文档。

Global site tag (gtag.js) - Google Analytics