首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

用DOM4J创设及修改XML文件

2012-11-01 
用DOM4J创建及修改XML文件package com.willpower.parsexmlimport java.io.Fileimport java.io.FileWrite

用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异常

转载自-->http://www.blogjava.net/willpower88/archive/2006/07/10/57546.html

热点排行