如何用DOM生成和修改XML文件

转载 2013年12月05日 18:46:17

我们一般都知道如何用DOM去读取XML文件的内容, DOM读取XML文件的时候会把整个XML文件映射到一棵内存树,如果通过DOM API中修改了这棵XML内存树,并不会反映到原XML文件,我们要想把修改或运行期间创建的XML内容保存到磁盘系统,可以用Transformer来实现。下面代码演示了该如何编程

public class DOMTester {
    public static void main(String[] args) {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        try {
            DocumentBuilder db = dbf.newDocumentBuilder();
            updateDocument(db);//修改XML文档
            newDocument(db);//创建新XML文档
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void updateDocument(DocumentBuilder db) throws SAXException, IOException {
        Document doc = db.parse(DOMTester.class.getResourceAsStream("test.xml"));
        Element root = doc.getDocumentElement();
        root.setAttribute("name","chinajash");
        Element catalog3 = doc.createElement("catalog");
        catalog3.setAttribute("id","003");
        catalog3.setTextContent("Music");
        root.appendChild(catalog3);
        writeXML(doc, "test.xml");
    }

    private static void newDocument(DocumentBuilder db) throws SAXException, IOException {
        Document doc = db.newDocument();
        Element root = doc.createElement("root");
        doc.appendChild(root);
        root.appendChild(doc.createElement("new"));
        writeXML(doc, "new.xml");
    }

    private static void writeXML(Document doc, String file) {
        try {
            Transformer t = TransformerFactory.newInstance().newTransformer();
            t.setOutputProperty("indent", "yes");
            t.transform(new DOMSource(doc), new StreamResult(new FileOutputStream(file)));
        } catch (TransformerException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();  
        }
    }
}

原test.xml的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<catalogs>
    <catalog id="001">Book</catalog>
    <catalog id="002">Video</catalog>
</catalogs>

上面程序修改了这个文件,运行后生成新的test.xml内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<catalogs name="chinajash">
    <catalog id="001">Book</catalog>
    <catalog id="002">Video</catalog>
    <catalog id="003">Music</catalog>
</catalogs>
 

上面程序运行后新产生的new.xml内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<root>
    <new />
</root>

dom4j解析、修改、生成xml文件(转)

原地址: http://xu283900277xiu.iteye.com/blog/542466 项目中用到XML的地方非常普遍,XML也不是一种新的技术。但经常遇到朋友们问如何操作XML文...

dom4j解析、修改、生成xml文件

项目中用到XML的地方非常普遍,XML也不是一种新的技术。但经常遇到朋友们问如何操作XML文件。所以写一个小例子,代码很乱。写出来和大家一起交流学习  1、生成XML  Java代码 ...
  • gvvbn
  • gvvbn
  • 2014年09月19日 14:10
  • 499

DOM4J创建、修改和格式xml文件例子(转)

import java.io.File; import java.io.FileWriter; import java.util.Iterator; import java.util.List;...

DOM解析与SAX解析来读取和修改xml文件

xml

java中用Dom4J来操作xml文件(删除和修改和添加)

java中用Dom4J来操作xml文件(删除和修改和添加) 1.1.1 功能分析 //3、修改某个元素节点的主体内容:信阳-->安阳 //6、删除指定元素节点:删除元素开封  ...

用DOM4J创建及修改XML文件

import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iter...
  • xwnxwn
  • xwnxwn
  • 2012年03月04日 16:29
  • 576

java中使用Dom4j修改xml文件【转】

package org.zzn.dom4j; import org.dom4j.Document; import org.dom4j.Element; import org...

使用DOM方式修改XML文件内容

DOM解析方式也可用于修改XML数据,我们可以使用它完成新增元素、删除元素、修改元素值、修改元素属性等操作。  我们的XML文件,内容如下:  employee.xml ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何用DOM生成和修改XML文件
举报原因:
原因补充:

(最多只允许输入30个字)