import javax.xml.transform.OutputKeys;
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;
import java.io.StringReader;
import java.io.StringWriter;

public class XmlTest {
    public static void main(String[] argv) throws TransformerException {
        String data =  "<?xml version=\"1.0\" encoding=\"UTF-8\"?><a><b>650b4d21</b><c>If true</c><d xml:space=\"preserve\">TRUE</d><e>test</e></a>";

        TransformerFactory transFactory = TransformerFactory.newInstance("com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl", XmlTest.class.getClassLoader());
        Transformer transformer = transFactory.newTransformer();

        transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
        transformer.setOutputProperty(OutputKeys.CDATA_SECTION_ELEMENTS, "body hyperlink");
        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");

        StringWriter writer = new StringWriter();

        StreamSource in = new StreamSource(new StringReader(data));
        transformer.transform(in, new StreamResult(writer));

        System.out.println("-----");
        System.out.println(writer.toString());
        System.out.println("-----");
    }
}

