下载 > 资源分类 >  开发技术 >  Java > dom4j

dom4j

2008-01-04 上传大小:811B

package xmllab;<br><br>import java.io.File;<br>import java.io.FileWriter;<br>import java.util.Iterator;<br>import java.util.List;<br>import org.dom4j.Attribute;<
br>import org.dom4j.Document;<br>import org.dom4j.DocumentHelper;<br>import org.dom4j.Element;<br>import org.dom4j.io.OutputFormat;<br>import org.dom4j.io.SAXReader;<br>import org.dom4j.io.XMLWriter;<br><br>/**<br><br>* @author Holen Chen<br><br>*/<br><br>public class Dom4jDemo {<br>    public Dom4jDemo() {<br>    }<br><br>    /**<br><br>      * 建立一个XML文档,文档名由输入属性决定<br><br>      * @param filename 需建立的文件名<br><br>      * @return 返回操作结果, 0表失败, 1表成功<br><br>      */<br><br>     public int createXMLFile(String filename){<br>        /** 返回操作结果, 0表失败, 1表成功 */<br>        int returnValue = 0;<br>        /** 建立document对象 */<br>        Document document = DocumentHelper.createDocument();//<?xml version="1.0" encoding="UTF-8"?><br>        /** 建立XML文档的根books */<br>        Element booksElement = document.addElement("books");//<books></books><br>        /** 加入一行注释 */<br>        booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");//<books><!--This is a test for dom4j, holen, 2004.9.11--></books><br>        /** 加入第一个book节点 */<br>        Element bookElement = booksElement.addElement("book");//<books><!--This is a test for dom4j, holen, 2004.9.11--><book></book></books><br>        /** 加入show属性内容 */<br>        bookElement.addAttribute("show","yes");//<books><!--This is a test for dom4j, holen, 2004.9.11--><book show="yes"></book></books><br>        /** 加入title节点 */<br>        Element titleElement = bookElement.addElement("title");//<books><!--This is a test for dom4j, holen, 2004.9.11--><book show="yes"><title></title></book></books><br>        /** 为title设置内容 */<br>        titleElement.setText("Dom4j Tutorials");//<books><!--This is a test for dom4j, holen, 2004.9.11--><book show="yes"><title>Dom4j Tutorials</title></book></books><br>        /** 类似的完成后两个book */<br>        bookElement = booksElement.addElement("book");<br>        bookElement.addAttribute("show","yes");<br>        titleElement = bookElement.addElement("title");<br>        titleElement.setText("Lucene Studing");<br>        bookElement = booksElement.addElement("book");<br>        bookElement.addAttribute("show","no");<br>        titleElement = bookElement.addElement("title");<br>        titleElement.setText("测试");<br>        /** 加入owner节点 */<br>        Element ownerElement = booksElement.addElement("owner");<br>        ownerElement.setText("O'Reilly");<br>        try{<br>            /** 将document中的内容写入文件中 */<br>            XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));<br>            writer.write(document);<br>            writer.close();<br>            /** 执行成功,需返回1 */<br>            returnValue = 1;<br>        }catch(Exception ex){<br>            ex.printStackTrace();<br>        }<br>        return returnValue;<br>     }<br><br>     /**<br>       * 修改XML文件中内容,并另存为一个新文件<br>       * 重点掌握dom4j中如何添加节点,修改节点,删除节点<br>       * @param filename 修改对象文件<br>       * @param newfilename 修改后另存为该文件<br>       * @return 返回操作结果, 0表失败, 1表成功<br>       */<br><br>      public int ModiXMLFile(String filename,String newfilename){<br>         int returnValue = 0;<br>         try{<br>             SAXReader saxReader = new SAXReader();<br>             Document document = saxReader.read(new File(filename));<br>             /** 修改内容之一: 如果book节点中show属性的内容为yes,则修改成no */<br>             /** 先用xpath查找对象 */<br>             List list = document.selectNodes("/books/book/@show" );<br>             Iterator iter = list.iterator();<br>             while(iter.hasNext()){<br>                Attribute attribute = (Attribute)iter.next();<br>                if(attribute.getValue().equals("yes")){<br>                    attribute.setValue("no");<br>                }<br>             }<br>             /**<br>              * 修改内容之二: 把owner项内容改为Tshinghua<br>              * 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type<br>              */<br>             list = document.selectNodes("/books/owner" );<br>             iter = list.iterator();<br>             if(iter.hasNext()){<br>                Element ownerElement = (Element)iter.next();<br>                ownerElement.setText("Tshinghua");<br>                Element dateElement = ownerElement.addElement("date");<br>                dateElement.setText("2007-09-06");<br>                dateElement.addAttribute("type","Gregorian calendar");<br>             }<br><br>             /** 修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点 */<br><br>             list = document.selectNodes("/books/book");<br><br>             iter = list.iterator();<br><br>             while(iter.hasNext()){<br><br>                Element bookElement = (Element)iter.next();<br><br>                Iterator iterator = bookElement.elementIterator("title");<br><br>                 while(iterator.hasNext()){<br><br>                    Element titleElement=(Element)iterator.next();<br><br>                    if(titleElement.getText().equals("Dom4j Tutorials")){<br><br>                       bookElement.remove(titleElement);<br><br>                    }<br><br>                }<br><br>             }<br><br><br><br>             try{<br><br>                /** 将document中的内容写入文件中 */<br><br>                XMLWriter writer = new XMLWriter(new FileWriter(new File(newfilename)));<br><br>                writer.write(document);<br><br>                writer.close();<br><br>                /** 执行成功,需返回1 */<br><br>                returnValue = 1;<br><br>             }catch(Exception ex){<br><br>                ex.printStackTrace();<br><br>             }<br><br><br><br>         }catch(Exception ex){<br><br>             ex.printStackTrace();<br><br>         }<br><br>         return returnValue;<br><br>      }<br><br><br>      /**<br><br>         * 格式化XML文档,并解决中文问题<br><br>         * @param filename<br><br>         * @return<br><br>         */<br><br>        public int formatXMLFile(String filename){<br><br>           int returnValue = 0;<br><br>           try{<br><br>               SAXReader saxReader = new SAXReader();<br><br>               Document document = saxReader.read(new File(filename));<br><br>               XMLWriter writer = null;<br><br>               /** 格式化输出 */<br><br>               OutputFormat format = OutputFormat.createPrettyPrint();<br><br>               /** 指定XML编码 */<br><br>               format.setEncoding("GBK");<br><br>               writer= new XMLWriter(new FileWriter(new File(filename)),format);<br><br>               writer.write(document);<br><br>               writer.close();<br><br>               /** 执行成功,需返回1 */<br><br>               returnValue = 1;<br><br>           }catch(Exception ex){<br><br>               ex.printStackTrace();<br><br>           }<br><br>           return returnValue;<br><br>        }<br><br><br><br>    public static void main(String[] args) {<br><br>       Dom4jDemo temp = new Dom4jDemo();<br><br>       //System.out.println(temp.createXMLFile("d://testxml.xml"));<br>       <br>       //System.out.println(temp.ModiXMLFile("d://testxml.xml","d://testxml2.xml"));<br>//       try{<br>         System.out.println(temp.formatXMLFile("d://testxml2.xml"));<br>//        // System.out.println(temp.formatXMLFile("E:\\test.xml"));<br>//       }<br>//       catch(Exception e)<br>//       {<br>//        // e.printStackTrace();<br>//        System.out.print("error!");<br>//<br>//    }<br><br>    }<br>}<br>
...展开收缩
综合评分:3.2(53位用户评分)
开通VIP C币充值 立即下载

评论共有11条

name
jie1782014-08-11 12:52:33
学习了,不错的
name
ok387799812014-05-15 11:15:48
还是很不错的,初学不错
name
micky9322014-05-14 11:13:51
那个命令要在那里执行啊,初学者啊不会用。
name
jj51602014-02-10 14:10:58
谢谢楼主分享,资源很有用。
name
wcblove2014-01-07 09:25:02
这个不错,能够应用。
name
netsniper_otto2013-01-06 16:58:42
这个不错 上次 下了 咩有评价 以后多评价啊 分不够用了
name
liuchunhui5272012-12-18 13:53:01
还是很不错的,初学不错
name
lipei12142012-11-12 11:12:12
还是很不错的,初学不错 .
name
dengjunsoft2012-07-15 15:10:15
对于初学者来说已经不错了,项目中可以加上去
name
shitianzengg2012-06-28 17:57:40
很基础,不错,谢谢分享!

评论资源

您不能发表评论,可能是以下原因:

登录后才能评论

待评论资源
 

热门专辑

img
sulizuo

关注

等级:1积分 61

开发技术热门标签

VIP会员动态

关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
确认下载
img

dom4j

会员到期时间: 剩余下载个数: 剩余C币:593 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
C币充值 开通VIP
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可奖励20下载分

  • 举报人:
  • 被举报人:
  • 举报的资源分:
  • *类型:
  • *详细原因: