001/*
002 * Copyright 2012 Atteo.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *      http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.atteo.evo.config;
017
018import java.io.StringWriter;
019
020import javax.xml.transform.OutputKeys;
021import javax.xml.transform.Transformer;
022import javax.xml.transform.TransformerException;
023import javax.xml.transform.TransformerFactory;
024import javax.xml.transform.dom.DOMSource;
025import javax.xml.transform.stream.StreamResult;
026
027import org.w3c.dom.Node;
028
029public class XmlUtils {
030    public static String prettyPrint(Node node) {
031        try {
032            Transformer transformer = TransformerFactory.newInstance().newTransformer();
033            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
034            StringWriter writer = new StringWriter();
035            transformer.transform(new DOMSource(node), new StreamResult(writer));
036            return writer.toString();
037        } catch (TransformerException e) {
038            throw new RuntimeException(e);
039        }
040    }
041}