Dom4j 生成以及格式化xml文件的样例

项目中遇到了读写xml文件的问题,下面贴上代码再逐一解释

Java代码 复制代码 收藏代码
  1. private void saveToXmlFile(ProcessInfo[] infos) 
  2.         { 
  3.             if (dom == null
  4.             { 
  5.                 loadProcessInfo(true); 
  6.             } 
  7.             XMLWriter writer = null
  8.             try 
  9.             { 
  10.                OutputFormat format = OutputFormat.createPrettyPrint(); 
  11.                writer = new XMLWriter(new FileWriter(filepath), format); 
  12.                if (dom != null
  13.                { 
  14.                    dom.clearContent(); 
  15.                } 
  16.                dom = DocumentHelper.createDocument(); 
  17.                dom.setXMLEncoding("utf-8"); 
  18.                 
  19.                Element root = dom.addElement("processes"); 
  20.                for (int i = 0; i < infos.length; i++) 
  21.                { 
  22.                    info2Element(root, infos[i]); 
  23.                } 
  24.                 
  25.                writer.write(dom); 
  26.                writer.flush(); 
  27.            } 
  28.            catch (IOException e) 
  29.            { 
  30.                log.error("存储XML文件出错", e); 
  31.            } 
  32.            finally 
  33.            { 
  34.                if (writer != null
  35.                { 
  36.                    try 
  37.                    { 
  38.                        writer.close(); 
  39.                    } 
  40.                    catch (IOException e) 
  41.                    { 
  42.                        // TODO Auto-generated catch block 
  43.                        e.printStackTrace(); 
  44.                    } 
  45.                } 
  46.            } 
  47.             
  48.             
  49.        } 
 private void saveToXmlFile(ProcessInfo[] infos)
         {
             if (dom == null)
             {
                 loadProcessInfo(true);
             }
             XMLWriter writer = null;
             try
             {
                OutputFormat format = OutputFormat.createPrettyPrint();
                writer = new XMLWriter(new FileWriter(filepath), format);
                if (dom != null)
                {
                    dom.clearContent();
                }
                dom = DocumentHelper.createDocument();
                dom.setXMLEncoding("utf-8");
                
                Element root = dom.addElement("processes");
                for (int i = 0; i < infos.length; i++)
                {
                    info2Element(root, infos[i]);
                }
                
                writer.write(dom);
                writer.flush();
            }
            catch (IOException e)
            {
                log.error("存储XML文件出错", e);
            }
            finally
            {
                if (writer != null)
                {
                    try
                    {
                        writer.close();
                    }
                    catch (IOException e)
                    {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
            
            
        }

创建xml 的主要类 DocumentHelper
见Line:16
dom = DocumentHelper.createDocument();
dom.setXMLEncoding("utf-8");
创建Document对象并设置编码
写入文件的主要类XMLWriter
格式化xml的辅助类OutputFormat
其创建过程参见Line 10
OutputFormat format = OutputFormat.createPrettyPrint();
writer = new XMLWriter(new FileWriter(filepath), format);
然后Document创建根Element
info2Element()的方法则是将对象转换到Element结构中去。
格式化的主要功臣就是 OutputFormat  相应的还有createCompactFormat() 创建压缩的xml文件,删去了所有的换行等无用的字符。createPrettyPrint() 则是生成格式化的xml 代码,让看起来好读一点。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值