jdom处理的XML Document 和String 之间的相互转化

来源:互联网 发布:鲁班钢筋软件 编辑:程序博客网 时间:2024/05/21 07:50
package util;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileWriter;import java.io.StringReader;import org.jdom.Document;   import org.jdom.input.SAXBuilder;   import org.jdom.output.Format;   import org.jdom.output.XMLOutputter;     /**   * JDOM 方式操作XML   *    * @author Watson Xu   * @date 2011-5-3 下午02:20:49   */  public class OperationXMLByJdom {       /**       * DOCUMENT格式化输出保存为XML       *        * @param doc JDOM的Document       * @param filePath 输出文件路径       * @throws Exception       */      public static void doc2XML(Document doc, String filePath) throws Exception{           Format format = Format.getCompactFormat();            format.setEncoding("UTF-8"); //设置XML文件的字符为UTF-8           format.setIndent("     ");//设置缩进                   XMLOutputter outputter = new XMLOutputter(format);//定义输出 ,在元素后换行,每一层元素缩排四格            FileWriter writer = new FileWriter(filePath);//输出流           outputter.output(doc, writer);           writer.close();       }              /**       * 字符串转换为DOCUMENT       *        * @param xmlStr 字符串       * @return doc JDOM的Document       * @throws Exception       */      public static Document string2Doc(String xmlStr) throws Exception {           java.io.Reader in = new StringReader(xmlStr);           Document doc = (new SAXBuilder()).build(in);                  return doc;       }         /**       * Document转换为字符串       *        * @param xmlFilePath XML文件路径       * @return xmlStr 字符串       * @throws Exception       */      public static String doc2String(Document doc) throws Exception {           Format format = Format.getPrettyFormat();           format.setEncoding("UTF-8");// 设置xml文件的字符为UTF-8,解决中文问题           XMLOutputter xmlout = new XMLOutputter(format);           ByteArrayOutputStream bo = new ByteArrayOutputStream();           xmlout.output(doc, bo);           return bo.toString();       }         /**       * XML转换为Document       *        * @param xmlFilePath XML文件路径       * @return doc Document对象       * @throws Exception       */      public static Document xml2Doc(String xmlFilePath) throws Exception {           File file = new File(xmlFilePath);           return (new SAXBuilder()).build(file);       }              public static void main(String[] args) {           try{               Document doc = xml2Doc("test.xml");               System.out.println(doc);               System.out.println(doc2String(doc));               doc = string2Doc(doc2String(doc));               doc2XML(doc, "1.xml");           } catch (Exception e) {               e.printStackTrace();           }                  }   }  


原创粉丝点击