Java XML Format prettyXml(String xml)

Here you can find the source of prettyXml(String xml)

Description

Uses the Xalan javax.transform classes to indent an XML string properly so that it is easier to read.

License

Open Source License

Declaration

public static String prettyXml(String xml) throws UnsupportedEncodingException, TransformerException 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * This file is part of OpenNMS(R).//w w w  .  j av a  2  s  . co m
 *
 * Copyright (C) 2006-2012 The OpenNMS Group, Inc.
 * OpenNMS(R) is Copyright (C) 1999-2012 The OpenNMS Group, Inc.
 *
 * OpenNMS(R) is a registered trademark of The OpenNMS Group, Inc.
 *
 * OpenNMS(R) is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published
 * by the Free Software Foundation, either version 3 of the License,
 * or (at your option) any later version.
 *
 * OpenNMS(R) 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 OpenNMS(R).  If not, see:
 *      http://www.gnu.org/licenses/
 *
 * For more information contact:
 *     OpenNMS(R) Licensing <license@opennms.org>
 *     http://www.opennms.org/
 *     http://www.opennms.com/
 *******************************************************************************/

import java.io.ByteArrayInputStream;

import java.io.StringWriter;
import java.io.UnsupportedEncodingException;

import javax.xml.transform.OutputKeys;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

public class Main {
    /**
     * Uses the Xalan javax.transform classes to indent an XML string properly
     * so that it is easier to read.
     */
    public static String prettyXml(String xml) throws UnsupportedEncodingException, TransformerException {
        StringWriter out = new StringWriter();

        TransformerFactory transFactory = TransformerFactory.newInstance();
        Transformer transformer = transFactory.newTransformer();

        // Set options on the transformer so that it will indent the XML properly
        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
        transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");

        StreamResult result = new StreamResult(out);
        Source source = new StreamSource(new ByteArrayInputStream(xml.getBytes("UTF-8")));

        // Run the transformer to put the XML into the StringWriter
        transformer.transform(source, result);

        return out.toString().trim();
    }
}

Related

  1. prettyPrintXml(String input)
  2. prettyPrintXml(String input)
  3. prettyPrintXML(String xml)
  4. prettyXml(final String xml)
  5. prettyXml(String xml)
  6. prettyXml(String xml)
  7. prettyXmlPrint(Node xml, OutputStream out)
  8. print(Element elm, OutputStream out)
  9. print(File file)