`
wyzxzws
  • 浏览: 392736 次
  • 性别: Icon_minigender_1
  • 来自: dazhou
社区版块
存档分类
最新评论

用 DOM4J创建及修改XML文件

阅读更多
代码如下:
package com.willpower.parsexml;

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 ParseXml {

    /** *//**
     * 创建XML文件
     * @author cnyqiao@hotmail.com
     * @param fileName
     * @date Jul 10, 2006 3:34:58 PM
     * @return rtn true or false
     */
    public boolean createXMLFile(String fileName) {
        boolean rtn = false;
        // 使用DocumentHelper.createDocument方法建立一个文档实例
        Document document = DocumentHelper.createDocument();
        // 使用addElement方法方法创建根元素
        Element catalogElement = document.addElement("catalog");
        // 使用addComment方法方法向catalog元素添加注释
        catalogElement.addComment("An XML cataog");
        // 使用addProcessInstruction向catalog元素增加处理指令
        catalogElement.addProcessingInstruction("target", "text");

        // 使用addElement方法向catalog元素添加journal子元素
        Element journalElement = catalogElement.addElement("journal");
        // 使用addAttribute方法向journal元素添加title和 publisher属性
        journalElement.addAttribute("title", "XML Zone");
        journalElement.addAttribute("publisher", "Willpower Co");

        // 使用addElement方法向journal元素添加article子元素
        Element articleElement = journalElement.addElement("article");
        // 使用addAttribute方法向article元素添加level和date属性
        articleElement.addAttribute("level", "Intermediate");
        articleElement.addAttribute("date", "July-2006");

        // 使用addElement方法向article元素添加title子元素
        Element titleElement = articleElement.addElement("title");
        // 使用setText方法设置title子元素的值
        titleElement.setText("Dom4j Create XML Schema");

        // 使用addElement方法向article元素添加authorElement 子元素
        Element authorElement = articleElement.addElement("author");

        // 使用addElement方法向author元素添加firstName子元素
        Element firstName = authorElement.addElement("fistname");
        // 使用setText方法设置firstName子元素的值
        firstName.setText("Yi");

        // 使用addElement方法向author元素添加lastname子元素
        Element lastName = authorElement.addElement("lastname");
        // 使用setText方法设置lastName子元素的值
        lastName.setText("Qiao");

        XMLWriter output;
        //输出格式化
        OutputFormat format = OutputFormat.createPrettyPrint();
        try {
            output = new XMLWriter(new FileWriter(fileName), format);
            output.write(document);
            output.close();
            rtn = true;
        } catch (IOException e) {
            e.printStackTrace();
        }

        return rtn;
    }

    /** *//**
     * 修改XML文件
     * @author cnyqiao@hotmail.com
     * @param fileName
     * @param newFileName
     * @date Jul 10, 2006 4:03:33 PM
     * @return
     */
    public boolean modiXMLFile(String fileName, String newFileName) {
       
        boolean rtn = false;
       
        SAXReader reader = new SAXReader();
        try {
            Document document = reader.read(new File(fileName));
            //用xpath查找对象
            List list = document.selectNodes("/catalog/journal/@title");
            Iterator itr = list.iterator();
            while(itr.hasNext()) {
                Attribute attribute = (Attribute)itr.next();
                if(attribute.getValue().equals("XML Zone")) {
                    attribute.setText("Modi XML");
                }
            }
            //在journal元素中增加date元素
            list = document.selectNodes("/catalog/journal");
            itr = list.iterator();
            if(itr.hasNext()) {
                Element journalElement = (Element)itr.next();
                Element dateElement = journalElement.addElement("date");
                dateElement.setText("2006-07-10");
                dateElement.addAttribute("type", "Gregorian calendar");
            }
            //删除title接点
            list = document.selectNodes("/catalog/journal/article");
            itr = list.iterator();
            while(itr.hasNext()) {
                Element articleElement = (Element)itr.next();
                Iterator iter = articleElement.elementIterator("title");
                while(iter.hasNext()) {
                    Element titleElement = (Element)iter.next();
                    if(titleElement.getText().equals("Dom4j Create XML Schema")) {
                        articleElement.remove(titleElement);
                    }
                }
            }
            XMLWriter output;
            OutputFormat format = OutputFormat.createPrettyPrint();
            try {
                output = new XMLWriter(new FileWriter(newFileName), format);
                output.write(document);
                output.close();
                rtn = true;
            } catch (IOException e) {
                e.printStackTrace();
            }
           
           
        } catch (DocumentException e) {           
            e.printStackTrace();
        }
       
        return rtn;
       
    }
    /** *//**
     * @param args
     */
    public static void main(String[] args) {
       
        ParseXml parseXml = new ParseXml();
        String fileName = "d:\\dom4j.xml";
        String newFileName = "d:\\modi.xml";
        if(parseXml.createXMLFile(fileName)) {
            System.out.println("Create XML File Success");
        }
       
        if(parseXml.modiXMLFile(fileName, newFileName)) {
            System.out.println("Modify XML File Success");
        }

    }

}

在修改XML时,需要用到jaxen-1.1-beta-6.jar,这里http://sourceforge.net/project/showfiles.php?group_id=16035&package_id=14121&release_id=328664下载,记住下那个zip包啊,这个包里的lib下有上面提到的那个文件,放在classpath下即可
不然会报ClassNotFound异常
分享到:
评论

相关推荐

    使用dom4j创建一个xml文件刘宝宝版

    **使用DOM4J创建XML文件刘宝宝版** 在Java编程中,DOM4J是一个非常流行的XML处理库,它提供了丰富的API来操作XML文档,包括创建、解析、修改和查询XML。下面我们将详细介绍如何使用DOM4J来创建一个XML文件。 首先...

    通过Dom4j创建和读取xml文件下载

    使用DOM4J创建XML文件通常涉及以下步骤: - 创建`Document`对象,这代表XML文档的根节点。 - 创建`Element`对象并添加到`Document`中,表示XML文档的元素层次结构。 - 添加`Attribute`,为元素设置属性。 - ...

    通过Dom4j创建和读取xml文件

    标题中的“通过Dom4j创建和读取xml文件”指的是使用Java库Dom4j来处理XML文档的操作。Dom4j是一个灵活且功能丰富的Java XML API,它提供了多种方式来解析、创建、修改XML文档。本知识点主要涵盖以下几个方面: 1. *...

    使用dom4j和jaxen解析xml

    - **dom4j+jaxen操作XML**:首先使用dom4j解析XML,然后通过jaxen创建XPath对象并执行查询。查询结果可以是元素、属性或其他XML节点,根据需要进行进一步处理。 例如,以下代码展示了如何使用dom4j和jaxen解析XML...

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

    在压缩包文件"复件 dom"中,可能包含了示例代码或教程,用于演示如何使用DOM4J和本地DOM解析XML文件。通过查看这些文件,你可以更深入地了解两种方法的具体实现,并在实际项目中选择合适的方式处理XML数据。 总结来...

    使用Maven管理项目,实现DOM4j操作XML文件

    2. **创建XML文件**:使用DOM4j创建一个新的XML文件,这通常涉及到`Document`、`Element`和`Writer`的使用。例如,你可以创建一个包含根元素和子元素的XML文件。 3. **动态创建XML节点**:在已有的XML文档中动态...

    dom4j解析xml文件的压缩包

    为了使用这个库,你需要将该jar包添加到项目的类路径中,然后就可以通过DOM4J提供的类和方法来解析和操作XML文件了。 总之,DOM4J是一个功能强大的XML处理库,无论是在小型项目还是大型系统中,都能发挥其优势,...

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

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

    dom4j解析xml详解

    - **配置文件解析**: 许多应用使用XML作为配置文件的格式,DOM4J可以方便地读取和更新这些配置信息。 - **Web服务**: 在SOAP等协议中,XML是常用的数据传输格式,DOM4J能够帮助构建和解析这些XML消息。 - **文档生成...

    dom4j创建及解析xml

    "使用 dom4j 解析 XML.files"可能是一些辅助资源,如图片或样例XML文件。 总之,DOM4J是Java开发中处理XML的强大工具,它提供了一套全面的API,涵盖了从创建XML到解析、查询和修改XML的所有需求。通过深入学习和...

    利用dom4j--读取xml文件

    DOM4J是Java中一个非常优秀的XML处理库,它提供了丰富的API,使得操作XML文件变得简单而高效。在本文中,我们将详细探讨如何利用DOM4J库来读取XML文件。 1. **安装DOM4J** 要使用DOM4J,首先需要将其添加到你的...

    dom4j创建xml文件

    ### DOM4J创建XML文件知识点解析 ...以上就是使用DOM4J创建XML文件的完整过程,包括环境搭建、文档创建、格式设置及异常处理等多个方面。通过本教程的学习,可以掌握使用DOM4J进行XML文件操作的基本技能。

    XSD使用dom4j校验XML

    本篇文章将深入探讨如何利用DOM4J库来实现XSD对XML文档的校验,以确保XML文件符合预先设定的数据结构规则。 首先,理解XSD的作用至关重要。XSD文件定义了XML文档的元素、属性、数据类型以及它们之间的关系。通过...

    Dom4J生成XML的完整方法希望大家能用到

    以下代码展示了如何使用Dom4J创建一个简单的XML文档: ```java import java.io.File; import java.io.FileWriter; import org.dom4j.io.XMLWriter; import org.dom4j.*; public class CreateDoc { public int ...

    dom4j解析和创建xml简单实例

    使用SAXReader类可以从XML文件创建一个Document对象。例如: ```java SAXReader reader = new SAXReader(); Document document = reader.read("example.xml"); ``` 之后,我们可以遍历Document对象,获取元素...

    Dom4j结合XPath解析XML文件路径表达式

    本篇文章将深入探讨如何使用Dom4j,一个流行的Java库,结合XPath来解析XML文件中的路径表达式,同时阐述相对路径和绝对路径的匹配原则。 首先,我们要了解Dom4j库。Dom4j是一个灵活且高效的处理XML的Java库,它提供...

    dom4j解析及生成 xml代码收集

    上述代码展示了如何使用DOM4J创建一个简单的XML文档并将其写入到名为"output.xml"的文件中。 总结,DOM4J是一个强大且易用的XML处理库,适合在Java项目中进行XML解析和生成。通过学习和实践提供的代码示例,你将...

    dom4j解析xml文件(增删改查)

    在解析XML文件时,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`来创建一个`Document`对象,然后通过`DOM4J`的`SAXReader`类进一步处理这个对象。例如: ```java SAXReader reader = new SAXReader(); ...

    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解析jar包

    与传统的DOM API相比,DOM4J更注重Java集合框架的集成,使得操作XML文档更加直观和高效。DOM4J的主要特点包括: 1. **面向对象的设计**:DOM4J将XML元素、属性、文本等都封装为Java对象,通过这些对象可以直接进行...

Global site tag (gtag.js) - Google Analytics