把xml格式的字符串写入到一个xml文件中

package demo;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.StringReader;
import java.util.Date;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

public class DocXml {
    public static void main(String[] args) {
        String s1 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><img src=\"http://b0.upaiyun.com/1523978382096.jpg\"><h1>百度</h1></img>";
        Document doc = str2Document(s1);
        String fileName = "E:\\learn\\a.html";
        createXml(fileName, doc);
        
    }
    
    
    public static Document str2Document(String xmlStr) {
        Document doc = null;
        StringReader sr = new StringReader(xmlStr);
        InputSource is = new InputSource(sr);
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder;
        try {
            builder = factory.newDocumentBuilder();
            doc = builder.parse(is);
        } catch (ParserConfigurationException e) {
            System.out.println("ParserConfiguration错误"+e);
        } catch (SAXException e) {
            System.out.println("SAX错误"+e);
        } catch (IOException e) {
            System.out.println("IO错误"+e);
        }
        return doc;
    }
    
    
    public synchronized static void createXml(String fileName, Document document) {
        System.out.println("============进入生成xml方法:" + new Date().toLocaleString() + "=================");
        try {
            // 判断文件是否存在,如存在就删掉它
            File file = new File(fileName);
            if (file.exists()) {
                file.delete();
                System.out.println("==============删除xml文件==============");
            }
            /** 将document中的内容写入文件中 */
            TransformerFactory tFactory = TransformerFactory.newInstance();
            Transformer transformer = tFactory.newTransformer();
            transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            DOMSource source = new DOMSource(document);
            StreamResult result = new StreamResult(new FileOutputStream(fileName));
            transformer.transform(source, result);
            System.out.println("--------------------------------" + "更新 XML文件成功" + "-------------------------------------");
        } catch (final Exception exception) {
            System.out.println("更新" + fileName + "出错:"+exception);
        }
        System.out.println("============退出生成xml方法:" + new Date().toLocaleString() + "=================");
    }
}

 

posted @ 2018-04-23 00:01  zhoudingzhao  阅读(4682)  评论(0编辑  收藏  举报