格式化xml字符串,并生成xml文件
最近一段时间都在研究如何生成格式化的xml文件,查了好多资料,现在总结一下,希望对大家有帮助。
下面是格式化xml字符串工具类
前提是已经生成了xml字符串
package util;import java.io.StringReader;import java.io.StringWriter;import org.dom4j.Document;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class XMLFormatUtil {public String formatXML(String str) throws Exception { SAXReader reader=new SAXReader(); //创建一个串的字符输入流 StringReader in=new StringReader(str); Document doc=reader.read(in); // 创建输出格式 OutputFormat formater=OutputFormat.createPrettyPrint(); //去掉xml文件的版本信息 [color=red]formater.setSuppressDeclaration(true);[/color] //设置xml的输出编码 formater.setEncoding("UTF-8"); //创建输出(目标) StringWriter out=new StringWriter(); //创建输出流 XMLWriter writer=new XMLWriter(out,formater); //输出格式化的串到目标中,执行后。格式化后的串保存在out中。 writer.write(doc); writer.close(); // System.out.println(out.toString()); //返回我们格式化后的结果 return out.toString(); }}
package util;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import org.dom4j.io.XMLWriter;public class XMLFileUtil {/** * 将已经格式化的xml字符串写入xml文件 * @param xmlStr * @return */public boolean createXMLFile(String xmlStr,String xmlName){boolean flag = false;try {XMLWriter output = null;//OutputFormat format = OutputFormat.createPrettyPrint(); //format.setSuppressDeclaration(true); // format.setEncoding("UTF-8"); //如果上面设置的xml编码类型为GBK,则应当用FileWriter来构建xml文件,否则会出现中文连码问题 /*outpt = new XMLWriter( new FileWriter( new File("D:/myeclipse/Workspaces/fusionChartsDemoTest/WebRoot/xml/"+xmlName+".xml")) , format); */ //如果上面设置的xml编码类型为utf-8,则应当用FileOutputStream来构建xml文件,否则还是会出现问题output = new XMLWriter( new FileOutputStream( new File("D:/myeclipse/Workspaces/fusionChartsDemoTest/WebRoot/xml/"+xmlName+".xml")));output.setEscapeText(false); output.write( xmlStr ); output.close(); return flag = true;} catch (IOException e) {e.printStackTrace();return flag;}}}