Java tutorial
//package com.java2s; /* * Copyright (c) 2001-2011 Convertigo SA. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see<http://www.gnu.org/licenses/>. * * $URL$ * $Author$ * $Revision$ * $Date$ */ import java.io.File; import java.io.IOException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Source; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; public class Main { private static ThreadLocal<TransformerFactory> defaultTransformerFactory = new ThreadLocal<TransformerFactory>() { @Override protected TransformerFactory initialValue() { return TransformerFactory.newInstance(); } }; public static void saveXml(Document dom, String filePath) throws IOException { saveXml(dom, filePath, false); } public static void saveXml(Document dom, String filePath, boolean omitXmlDeclaration) throws IOException { saveXml(dom, new File(filePath), omitXmlDeclaration); } public static void saveXml(Document dom, File file) throws IOException { saveXml(dom, file, false); } public static void saveXml(Document dom, File file, boolean omitXmlDeclaration) throws IOException { try { Transformer transformer = getNewTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, omitXmlDeclaration ? "yes" : "no"); transformer.transform(new DOMSource(dom.getDocumentElement()), new StreamResult(file.toURI().getPath())); } catch (Exception e) { throw new IOException("saveXml failed because : " + e.getMessage()); } } public static Transformer getNewTransformer() throws TransformerConfigurationException { return defaultTransformerFactory.get().newTransformer(); } public static Transformer getNewTransformer(Source source) throws TransformerConfigurationException { return defaultTransformerFactory.get().newTransformer(source); } }