`
conkeyn
  • 浏览: 1512202 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

使用dom4j修改xml元素

阅读更多

预先编写一个xml文件books.xml ,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<books>
	<!--This is a test for dom4j, jakoes, 2007.7.19-->
	<book show="yes" url="lucene.net">
		<title id="456">Lucene 学习</title>
	</book>
	<book show="yes" url="dom4j.com">
		<title id="123">Dom4j Tutorials</title>
	</book>
	<book show="no" url="spring.org">
		<title id="789">Spring in Action</title>
	</book>
	<owner>O'Reilly</owner>
</books>  

 修改books.xml文件的java代码XmlModify.java

/**
 * XmlModify.java 
 * 2011-2-21 下午03:07:14
 */
package com.gbit.test;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

/**
 * @author linzq
 * 
 */
public class XmlModify
{

    /**
     * @param args
     * @throws DocumentException
     * @throws IOException
     */
    public static void main(String[] args) throws DocumentException,
            IOException
    {
        String path = XmlModify.class.getResource(".").getFile().toString();
        SAXReader reader = new SAXReader();
        // 设置读取文件内容的编码
        reader.setEncoding("GBK");
        Document doc = reader.read(path + "books.xml");
        // System.out.println(doc);

        // 修改内容之一: 如果book节点中show属性的内容为yes,则修改成no
        // 先用xpath查找对象
        // 根据试用,根节点books的xpath路径要加/或不加都可以。
        List<Attribute> attrList = doc.selectNodes("books/book/@show");
        Iterator<Attribute> i = attrList.iterator();
        while (i.hasNext())
        {
            Attribute attribute = i.next();
            if (attribute.getValue().equalsIgnoreCase("yes"))
            {
                attribute.setValue("no");
            }
        }

        // 修改内容之二: 把owner项内容改为Tshinghua
        // 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type
        List<Element> eleList = doc.selectNodes("owner");
        Iterator<Element> eleIter = eleList.iterator();
        if (eleIter.hasNext())
        {
            Element ownerElement = eleIter.next();
            ownerElement.setText("Tshinghua");
            Element dateElement = ownerElement.addElement("date");
            DateFormat df = SimpleDateFormat.getDateInstance();
            dateElement.setText(df.format(new Date()));
            ownerElement.addAttribute("type", "Gregorian calendar");
        }

        // 修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点
        eleList = doc.selectNodes("books/book");
        eleIter = eleList.iterator();
        while (eleIter.hasNext())
        {
            Element element = eleIter.next();
            Iterator<Element> titleIter = element.elementIterator("title");
            while (titleIter.hasNext())
            {
                Element title = titleIter.next();
                if (title.getText().equalsIgnoreCase("Dom4j Tutorials"))
                {
                    element.remove(title);
                }
            }
        }
        OutputFormat format = OutputFormat.createPrettyPrint();
        // 利用格式化类对编码进行设置
        format.setEncoding("GBK");
        FileOutputStream output = new FileOutputStream(new File(path +
                "books1.xml"));
        XMLWriter writer = new XMLWriter(output, format);
        writer.write(doc);
        writer.flush();
        writer.close();
    }
}

 

 

 

分享到:
评论

相关推荐

    使用dom4j修改xml文档中的内容(最简单的 )

    使用dom4j修改xml文档中的内容(最简单的 ) 配置文件格式是: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;userName&gt;zhangsan0 &lt;pwd&gt;zhangsan1 &lt;sex&gt;man &lt;email&gt;zhangsan0@163.com&lt;/email&gt; 最简单的 配置...

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

    在这个示例中,我们将深入探讨如何利用Maven管理和DOM4j来操作XML文件。 首先,让我们了解一下Maven。Maven是Apache软件基金会的一个项目,它通过定义项目对象模型(Project Object Model,POM)来管理项目的构建、...

    dom4j操作xml

    DOM4J通过创建一个对象模型来表示XML文档,使得我们可以像操作Java对象一样操作XML元素。 1. **XML解析**: - 使用`DocumentBuilderFactory`和`DocumentBuilder`类可以将XML字符串转换为`Document`对象,这是DOM4J...

    使用DOM4J对XML文件操作-添加、修改、删除、获取元素节点

    - XPath支持:可以方便地使用XPath表达式查找和操作XML元素。 - 轻量级:DOM4J不依赖大型库,适合各种项目。 - 性能良好:相比于传统的DOM API,DOM4J在内存占用和处理速度上有优势。 在实际开发中,DOM4J的强大...

    XSD使用dom4j校验XML

    DOM4J是Java环境中一个强大、灵活的XML处理库,它提供了XML的读取、写入、解析和操作的能力。本篇文章将深入探讨如何利用DOM4J库来实现XSD对XML文档的校验,以确保XML文件符合预先设定的数据结构规则。 首先,理解...

    dom4j读写xml文档实例

    它提供了简单且高效的API来读取、写入、修改以及操作XML。在这个实例中,我们将深入理解DOM4J库如何帮助我们处理XML文档,并通过实际操作来熟悉其核心功能。 XML(eXtensible Markup Language)是一种用于标记数据...

    Dom4j解析XML文档.doc

    在本文中,我们将深入探讨如何使用DOM4J来解析和操作XML文档。 首先,要使用DOM4J,你需要下载其库文件。官方站点位于http://www.dom4j.org,你可以在这里找到最新的DOM4J包,例如dom4j-1.6.1.zip。解压缩后,你会...

    dom4j解析xml文件的压缩包

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

    dom4j 解析(读取) xml 节点数据

    在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你已经下载了必要的依赖,即DOM4J库。通常,这将是一个名为`dom4j-x.x.x.jar`的文件,其中x.x.x是DOM4J的版本号...

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

    在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...

    使用dom4j将xml字符串转换成Bean对象

    首先,dom4j是一个强大的Java XML API,它提供了丰富的功能,如读取、写入、修改和操作XML文档。其核心概念是Element(元素)、Attribute(属性)和Document(文档)。通过这些对象,我们可以方便地处理XML文档的...

    dom4j操作XMl例子

    在本示例中,"dom4jExample.java"是一个Java程序,它展示了如何利用DOM4J库来操作XML文件。 首先,我们需要了解DOM4J的基本概念。DOM4J采用Document Object Model (DOM)接口,但它的实现比标准DOM更快,占用内存更...

    使用dom4j对xml的读写

    一旦我们有了`Document`对象,就可以通过XPath表达式或者直接遍历DOM树来访问XML元素和属性。 **2. XML的写入** XML的写入通常涉及`Document`对象的构建和序列化。我们可以使用`Element`对象创建XML结构,然后将其...

    dom4j解析XML所需jar包

    1. **DOM4J API**:DOM4J提供了一组直观的类和接口来操作XML文档,如`Element`代表XML元素,`Attribute`代表属性,`Document`表示整个XML文档,还有`Namespace`处理命名空间。通过这些API,开发者可以轻松地创建、...

    dom4j解析xml实例

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

    java dom4j解析xml

    Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...

    dom4j解析xml

    DOM4J是一个Java库,它为处理XML提供了强大的功能,包括读取、写入、修改和操作XML文档。这个库以其灵活性、效率和易用性而受到开发者的青睐。DOM4J是基于DOM(Document Object Model)的,但它通过提供更高级别的...

    dom4j操作xml的增删改查

    本教程将详细讲解如何使用DOM4J进行XML的增、删、改、查操作。 **一、XML的基本概念** XML(eXtensible Markup Language)是一种标记语言,用于描述数据结构,通常用于存储和传输数据。DOM(Document Object Model...

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

    DOM4j的优势在于其灵活性和易用性,例如,它可以方便地通过XPath表达式进行查询,也可以通过Element和Attribute接口直接操作XML元素和属性。 在实际应用中,如果你需要频繁地进行XML操作,DOM4j通常会是更好的选择...

    java中dom4j读写XML

    在Java中,DOM4J提供了一种灵活的方式来操作XML文档,包括解析、遍历、修改节点以及序列化回XML字符串。 **DOM4J的基本概念:** 1. **Element(元素)**:XML文档中的每一个标签都是一个Element,它包含属性、文本...

Global site tag (gtag.js) - Google Analytics