本站首页    管理页面    写新日志    退出

«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告

  如果你忍了,欺负你的人将来可能就进监狱了。如果你反击,欺负你的人将来可能就获选十大杰出青年了。

        QQ: 3159671

http://greenboy.javaeye.com/

http://blog.sina.com.cn/u/1278341164 小鸟吹烟


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:小鸟吹烟
日志总数:157
评论数量:424
留言数量:-1
访问次数:1259971
建立时间:2006年10月23日




[XML]dom4j操作XML大全
文章收藏,  网上资源

tone 发表于 2007/2/27 15:41:51

http://blog.bc-cn.net/user14/73186/archives/2006/2916.shtml //首先要下载dom4j.jar//示例1package dom4jdemo;import java.io.File;import java.io.FileInputStream;import java.io.StringBufferInputStream;import java.util.List; import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.Node;import org.dom4j.io.SAXReader;public class Dom4jParseDemo {  public static void main(String[] args) {     String xml="";  xml+="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";  xml+="<root>";  xml+="<users userId=\"1\">";  xml+="<username>admin</username>";  xml+="<password>111</password>";  xml+="<quanxian>0</quanxian>";  xml+="<underling><name>under1</name></underling>";  xml+="</users>";    xml+="<users userId=\"2\">";  xml+="<username>hehe</username>";  xml+="<password>张三</password>";  xml+="<quanxian>1</quanxian>";  xml+="<underling><name>under1</name></underling>";  xml+="</users>";    xml+="<users userId=\"3\">";  xml+="<username>李鹏</username>";  xml+="<password>111</password>";  xml+="<quanxian>2</quanxian>";  xml+="<underling><name>under1</name></underling>";  xml+="</users>";    xml+="<users userId=\"4\">";  xml+="<username>java</username>";  xml+="<password>111</password>";  xml+="<quanxian>1</quanxian>";  xml+="<underling><name>under1</name></underling>";  xml+="</users>";  xml+="</root>";  SAXReader saxReader = new SAXReader();  try {   //File file=new File("C:\\test.xml");   //FileInputStream in=new FileInputStream(file);   //Document document = saxReader.read(in);//从文件流读入xml数据   StringBufferInputStream strInStream=new StringBufferInputStream(xml);   Document document = saxReader.read(strInStream);//从STRING对象读入XML数据   Element root = document.getRootElement();   List listUsers=root.selectNodes("users");   for(int i=0;i<listUsers.size();i++){    Element eleUser=(Element)listUsers.get(i);    Node nodeUsername=eleUser.selectSingleNode("username");    Node nodePassword=eleUser.selectSingleNode("password");        System.err.println("username:"+nodeUsername.getText());    System.err.println("password:"+nodeUsername.getText());        //System.err.println("username:"+nodeUsername.getStringValue());    //System.err.println("password:"+nodePassword.getStringValue());   }  } catch (Exception e) {   e.printStackTrace();  } }} //示例2package dom4jdemo; import java.io.File;import java.io.FileWriter;import java.util.Iterator;import java.util.List; import org.dom4j.Attribute;import org.dom4j.Document;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 Dom4jUpdateDemo {     public int createXMLFile(String filename){        /** 返回操作结果, 0表失败, 1表成功 */        int returnValue = 0;        /** 建立document对象 */        Document document = DocumentHelper.createDocument();        /** 建立XML文档的根books */        Element booksElement = document.addElement("books");        /** 加入一行注释 */        booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");        /** 加入第一个book节点 */        Element bookElement = booksElement.addElement("book");        /** 加入show属性内容 */        bookElement.addAttribute("show","yes");        /** 加入title节点 */        Element titleElement = bookElement.addElement("title");        /** 为title设置内容 */        titleElement.setText("Dom4j Tutorials");               /** 类似的完成后两个book */        bookElement = booksElement.addElement("book");        bookElement.addAttribute("show","yes");        titleElement = bookElement.addElement("title");        titleElement.setText("Lucene Studing");        bookElement = booksElement.addElement("book");        bookElement.addAttribute("show","no");        titleElement = bookElement.addElement("title");        titleElement.setText("Lucene in Action");               /** 加入owner节点 */        Element ownerElement = booksElement.addElement("owner");        ownerElement.setText("O'Reilly");               try{            /** 将document中的内容写入文件中 */            XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));            writer.write(document);            writer.close();            /** 执行成功,需返回1 */            returnValue = 1;        }catch(Exception ex){            ex.printStackTrace();        }                      return returnValue;     }     /**      * 修改XML文件中内容,并另存为一个新文件      * 重点掌握dom4j中如何添加节点,修改节点,删除节点      * @param filename 修改对象文件      * @param newfilename 修改后另存为该文件      * @return 返回操作结果, 0表失败, 1表成功      */     public int ModiXMLFile(String filename,String newfilename){        int returnValue = 0;        try{            SAXReader saxReader = new SAXReader();            Document document = saxReader.read(new File(filename));            /** 修改内容之一: 如果book节点中show属性的内容为yes,则修改成no */            /** 先用xpath查找对象 */            List list = document.selectNodes("/books/book/@show" );            Iterator iter = list.iterator();            while(iter.hasNext()){               Attribute attribute = (Attribute)iter.next();               if(attribute.getValue().equals("yes")){                   attribute.setValue("no");               }              }                       /**             * 修改内容之二: 把owner项内容改为Tshinghua             * 并在owner节点中加入date节点,date节点的内容为2004-09-11,还为date节点添加一个属性type             */            list = document.selectNodes("/books/owner" );            iter = list.iterator();            if(iter.hasNext()){               Element ownerElement = (Element)iter.next();               ownerElement.setText("Tshinghua");               Element dateElement = ownerElement.addElement("date");               dateElement.setText("2004-09-11");               dateElement.addAttribute("type","Gregorian calendar");            }                       /** 修改内容之三: 若title内容为Dom4j Tutorials,则删除该节点 */            list = document.selectNodes("/books/book");            iter = list.iterator();            while(iter.hasNext()){               Element bookElement = (Element)iter.next();               Iterator iterator = bookElement.elementIterator("title");                while(iterator.hasNext()){                   Element titleElement=(Element)iterator.next();                   if(titleElement.getText().equals("Dom4j Tutorials")){                      bookElement.remove(titleElement);                   }               }            }                                try{               /** 将document中的内容写入文件中 */               XMLWriter writer = new XMLWriter(new FileWriter(new File(newfilename)));               writer.write(document);               writer.close();               /** 执行成功,需返回1 */               returnValue = 1;            }catch(Exception ex){               ex.printStackTrace();            }                   }catch(Exception ex){            ex.printStackTrace();        }        return returnValue;     }     /**      * 格式化XML文档,并解决中文问题      * @param filename      * @return      */     public int formatXMLFile(String filename){        int returnValue = 0;        try{            SAXReader saxReader = new SAXReader();            Document document = saxReader.read(new File(filename));            XMLWriter writer = null;            /** 格式化输出,类型IE浏览一样 */            OutputFormat format = OutputFormat.createPrettyPrint();            /** 指定XML编码 */            format.setEncoding("GBK");            writer= new XMLWriter(new FileWriter(new File(filename)),format);            writer.write(document);            writer.close();                 /** 执行成功,需返回1 */            returnValue = 1;            }catch(Exception ex){            ex.printStackTrace();        }        return returnValue;     }         public static void main(String[] args) {             Dom4jUpdateDemo temp = new Dom4jUpdateDemo();            System.out.println(temp.createXMLFile("c://holen.xml"));               System.out.println(temp.ModiXMLFile("c://holen.xml","c://holen2.xml"));            System.out.println(temp.formatXMLFile("c://holen2.xml"));         } }//示例3import java.io.File;import java.io.FileWriter;import java.io.IOException; import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.DocumentHelper;import org.dom4j.io.XMLWriter; public class Dom4JWriteDemo2 {     public static void main(String[] args) {                String usernames[]={"admin","zhong","yang"};        String passwords[]={"1984","123","321"};                Document doc = DocumentHelper.createDocument();         Element root = doc.addElement("root");                for (int i = 0; i < usernames.length; i++) {            Element users = root.addElement("users");            users.addAttribute("userId", String.valueOf(i));            Element username = users.addElement("username");            username.setText(usernames[i]);            Element password = users.addElement("password");            password.setText(passwords[i]);        }         try {            XMLWriter output = new XMLWriter(new FileWriter(new File("c:/Dom4j.xml")));            output.write(doc);            output.close();             System.out.println("XML创建成功!");        } catch (IOException e) {            System.out.println("XML创建失败!" + e.getMessage());        }    }}


阅读全文(7104) | 回复(1) | 编辑 | 精华
 


回复:dom4j操作XML大全
文章收藏,  网上资源

xcvxc(游客)发表评论于2007/3/1 9:58:28

盛大***游戏真好玩!***传世私服传奇世界私服


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.028 second(s), page refreshed 144808318 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号