java Document文档处理工具类--写入转换(XML与File转Document)

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.StringReader;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;

import org.dom4j.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

public class DocumentUtil { 
   public static Document createDocument()  { 
	   try { 
			// 初始化xml解析工厂
			DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
			
			// 创建DocumentBuilder
			DocumentBuilder builder = factory.newDocumentBuilder();
			
			// 创建Document
			Document doc = (Document) builder.newDocument();

			doc.setXMLEncoding("UTF-8");
            return doc;
		} catch (Exception e) { 
			e.printStackTrace();
		   throw new RuntimeException(e);
		}

   }
   public static Document parseXml(String in) { 
       try { 
           DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
           DocumentBuilder db = dbf.newDocumentBuilder();
           InputSource is = new InputSource(new StringReader(in));
           return (Document) db.parse(is);
       } catch (ParserConfigurationException e) { 
           throw new RuntimeException(e);
       } catch (SAXException e) { 
           throw new RuntimeException(e);
       } catch (IOException e) { 
           throw new RuntimeException(e);
       }
   }
   public static Document parseFile(File file){ 
	   try{ 
		   // 初始化xml解析工厂
		     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
	
		   // 创建DocumentBuilder
		   DocumentBuilder builder = factory.newDocumentBuilder();
	
		   // 创建解析xml的Document
		   Document doc = (Document) builder.parse(file);
		   // 根节点名称
// String rootName = doc.getDocumentElement().getTagName();
// System.out.println("根节点: " + rootName);
// 
// System.out.println("递归解析--------------begin------------------");
// // 递归解析Element
// Element element = doc.getDocumentElement();
// parseElement(element);
// System.out.println("递归解析--------------end------------------");
		   return doc;

	   } catch (ParserConfigurationException e) { 
	         e.printStackTrace();
	         throw new RuntimeException(e);
	   } catch (SAXException e) { 
	          e.printStackTrace();
	          throw new RuntimeException(e);
	   } catch (IOException e) { 
	        e.printStackTrace();
	        throw new RuntimeException(e);
	    }
	   }
   /** * 传入到哪个文件路径 传入生成的document * @param fileUrl 需要生成文件的路径 * @param doc 生成的文档 * @throws IOException */
   public static void write(String fileUrl, Document doc) throws IOException { 
       File file = new File(fileUrl);
       write(file, "UTF-8", doc);
   }

   /** * 传入到哪个文件路径 传入生成的document * @param fileUrl 文件路径 * @param charsetName 编码 * @param doc 文档 * @throws IOException */
   public static void write(String fileUrl,String charsetName, Document doc) throws IOException { 
       File file = new File(fileUrl);
       write(file, charsetName, doc);
   }

   /** * 传入到哪个文件 传入生成的document * @param file * @param doc * @throws IOException */
   public static void write(File file, Document doc) throws IOException { 
       write(file, "UTF-8", doc);
   }

   /** * 将document内容写入文件中 * @param file * @param charsetName * @param doc * @throws IOException */
   public static void write(File file, String charsetName, Document doc) throws IOException { 
	   try { 
		   if (!file.exists()) { 
	           file.createNewFile();
	       }
	       FileOutputStream fos = new FileOutputStream(file, false);
	       // 设置输出流
	       OutputStreamWriter osw = new OutputStreamWriter(fos, charsetName);
	       // 讲doc写入文件中
	       osw.write(doc.asXML());
	       osw.close();
		} catch (Exception e) { 
			// TODO: handle exception
			throw new RuntimeException(e);
		}
      
   }

}
    原文作者:FristMin
    原文地址: https://blog.csdn.net/u011323200/article/details/103711170
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞