public String filter(String message) {
if (message == null) {
return null;
}
message = message.replaceAll(">\\s*[\\r\\n]+\\s*", ">");
message = message.replaceAll("\\s*[\\r\\n]+\\s*", " ");
Source xmlInput = new StreamSource(new StringReader(message));
StringWriter stringWriter = new StringWriter();
try {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setAttribute("indent-number", INDENT);
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", INDENT.toString());
transformer.transform(xmlInput, new StreamResult(stringWriter));
String pretty = stringWriter.toString();
pretty = pretty.replace("\r\n", "\n");
return pretty;
} catch (TransformerException e) {
if (e.getCause() != null && e.getCause() instanceof SAXParseException) {
return message;
}
throw new RuntimeException(e);
}
}
but I get an exception here:
transformerFactory.setAttribute("indent-number", INDENT); // for Java 6
java.lang.IllegalArgumentException: not supported: indent-number
my java:
java version "1.6.0_33"
why am i getting this error?
source
share