• 转载 Dom4j生成xml


    首先我们给出一段示例程序:

     import  java.io.File;
     
    import  java.io.FileWriter;
     
    import  java.util.Iterator;
     
     
    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  DOM4JTest  {
     
         
     /**   */ 
         
     /**   */ 
         
     /**   */ 
         
     /** 
          * DOM4J读写XML示例
          * 
          * 
     @param  args
          * 
     @throws  Exception
          
     */ 

         
     public   static   void  main(String[] args)  {
             
     try   {
                 XMLWriter writer 
     =   null ; //  声明写XML的对象 
     
                SAXReader reader  =   new  SAXReader();
     
                 OutputFormat format 
     =  OutputFormat.createPrettyPrint();
                 format.setEncoding(
     " GBK " ); //  设置XML文件的编码格式 
     

                 String filePath 
     =   " d://student.xml " ;
                 File file 
     =   new  File(filePath);
                 
     if  (file.exists())  {
                     Document document 
     =  reader.read(file); //  读取XML文件 
     
                    Element root  =  document.getRootElement(); //  得到根节点 
     
                     boolean  bl  =   false ;
                     
     for  (Iterator i  =  root.elementIterator( " 学 生 " ); i.hasNext();)  {
                         Element student 
     =  (Element) i.next();
                         
     if  (student.attributeValue( " sid " ).equals( " 001 " ))  {
                             
     //  修改学生sid=001的学生信 息 
     
                            student.selectSingleNode( " 姓 名 " ).setText( " 王五 " );
                             student.selectSingleNode(
     " 年 龄 " ).setText( " 25 " );
     
                             writer 
     =   new  XMLWriter( new  FileWriter(filePath), format);
                             writer.write(document);
                             writer.close();
                             bl 
     =   true ;
                             
     break ;
                         }
     

                     }
     

                     
     if  (bl)  {
                         
     //  添加一个学生信息 
     
                        Element student  =  root.addElement( " 学 生 " );
                         student.addAttribute(
     " sid "  " 100 " );
                         Element sid 
     =  student.addElement( " 编 号 " );
                         sid.setText(
     " 100 " );
                         Element name 
     =  student.addElement( " 姓 名 " );
                         name.setText(
     " 嘎嘎 " );
                         Element sex 
     =  student.addElement( " 性 别 " );
                         sex.setText(
     "  " );
                         Element age 
     =  student.addElement( " 年 龄 " );
                         age.setText(
     " 21 " );
     
                         writer 
     =   new  XMLWriter( new  FileWriter(filePath), format);
                         writer.write(document);
                         writer.close();
                     }
     

                 }
     
      else   {
                     
     //  新建student.xml文件并新增内容 
     
                    Document _document  =  DocumentHelper.createDocument();
                     Element _root 
     =  _document.addElement( " 学 生信息 " );
                     Element _student 
     =  _root.addElement( " 学 生 " );
                     _student.addAttribute(
     " sid "  " 001 " );
                     Element _id 
     =  _student.addElement( " 编 号 " );
                     _id.setText(
     " 001 " );
                     Element _name 
     =  _student.addElement( " 姓 名 " );
                     _name.setText(
     " 灰机 " );
                     Element _age 
     =  _student.addElement( " 年 龄 " );
                     _age.setText(
     " 18 " );
     
                     writer 
     =   new  XMLWriter( new  FileWriter(file), format);
                     writer.write(_document);
                     writer.close();
                 }
     

                 System.out.println(
     " 操作结束!  " );
             }
     
      catch  (Exception e)  {
                 e.printStackTrace();
             }
     

     
         }
     

     }


    执行结果应该是这样:

     

    循环解析节点:

     private   void  getAllNodes(String xml)  {
             
     try   {
                 Document authtmp 
     =  DocumentHelper.parseText(xml);
                 List
     < Element >  list  =  authtmp.selectNodes( " //sms/node " );
                 
     for  ( int  j  =   0 ; j  <  list.size(); j ++  {
                     Element node 
     =  (Element) list.get(j);
                     nodeByNodes(node);
                 }
     

             }
     
      catch  (Exception e)  {
                 e.printStackTrace();
             }
     

         }
     

     
         
     private   void  nodeByNodes(Element node)  {
             
     if  (node.element( " node "  !=   null  {
                 String id 
     =  node.attributeValue( " id " );
                 String name 
     =  node.attributeValue( " name " );
                 System.out.print(id 
     +   " ------- " );
                 System.out.println(name);
                 
     for  (Iterator i  =  node.elementIterator( " node " ); i.hasNext();)  {
                     Element newNode 
     =  (Element) i.next();
                     nodeByNodes(newNode);
                 }
     

             }
     
      else   {
                 String id 
     =  node.attributeValue( " id " );
                 String name 
     =  node.attributeValue( " name " );
                 System.out.print(id 
     +   " ------- " );
                 System.out.println(name);
             }
     

         }
  • 相关阅读:
    nginx开启ssl模式
    安装nginx
    node的express框架
    使用Thumbnails工具对图片进行缩放,压缩
    正则
    VUE设置全局方法和属性
    js——XHR知识归纳
    页面资源加载过程
    Mongodb的增删改查
    Mongodb基本概念
  • 原文地址:https://www.cnblogs.com/xiao0/p/2170198.html
Copyright © 2020-2023  润新知