热门关键字:  ubuntu  分区  linux系统进程  函数  Fedora

当前位置 :| 主页>Linux教程>编程开发>JAVA>

Java操作XML文件

来源: 作者: 时间:2007-09-01 Tag: 点击:

在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互。
今天就来讲一下Java 中使用dom4j来操作XML文件。

我们需要引入的包:

//文件包
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileWriter;
//工具包
import java.util.Iterator;
import java.util.List;
//dom4j包
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;

1、将XML文件的内容转化为String

   /**
    * doc2String
    * 将xml文档内容转为String
    * @return 字符串
    * @param document
    */

   public static String doc2String(Document document)
   {
      String s = "";
      try
      {
           //使用输出流来进行转化
           ByteArrayOutputStream out = new ByteArrayOutputStream();
           //使用GB2312编码
           OutputFormat format = new OutputFormat("  ", true, "GB2312");
           XMLWriter writer = new XMLWriter(out, format);
           writer.write(document);
           s = out.toString("GB2312");
      }catch(Exception ex)
      {            
           ex.printStackTrace();
      }      
      return s;
   }

2、将符合XML格式的String 转化为XML Document

   /**
    * string2Document
    * 将字符串转为Document
    * @return 
    * @param s xml格式的字符串
    */

   public static Document string2Document(String s)
   {
      Document doc = null;
      try
      {
           doc = DocumentHelper.parseText(s);
      }catch(Exception ex)
      {            
           ex.printStackTrace();
      }
      return doc;
   }

3、将Document对象保存为一个xml文件到本地

   /**
    * doc2XmlFile
    * 将Document对象保存为一个xml文件到本地
    * @return true:保存成功  flase:失败
    * @param filename 保存的文件名
    * @param document 需要保存的document对象
    */

   public static boolean doc2XmlFile(Document document,String filename)
   {
      boolean flag = true;
      try
      {
            /* 将document中的内容写入文件中 */
            //默认为UTF-8格式,指定为"GB2312"
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("GB2312");
            XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)),format);
            writer.write(document);
            writer.close();            
        }catch(Exception ex)
        {
            flag = false;
            ex.printStackTrace();
        }
        return flag;      
   }


最新评论共有 4 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册