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() + "=================");
}
}