pmd (build): Add a commodity method to printout a DOMSource

git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@7529 51baf565-9d33-0410-a72c-fc3788e3496d
This commit is contained in:
Romain Pelisse
2011-12-06 18:15:39 +00:00
parent 4b8caa5bfa
commit 6ecd260d25

View File

@ -3,6 +3,7 @@
*/
package net.sourceforge.pmd.build.util;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
@ -11,8 +12,10 @@ import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import net.sourceforge.pmd.build.PmdBuildException;
@ -67,4 +70,21 @@ public final class XmlUtil {
doc.appendChild(root);
return new DOMSource(doc);
}
public static String transformDOMToString(DOMSource source) {
try {
// Use a Transformer for output
TransformerFactory tFactory =
TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
ByteArrayOutputStream sos = new ByteArrayOutputStream();
StreamResult result = new StreamResult(sos);
transformer.transform(source, result);
return sos.toString();
} catch (TransformerException e) {
throw new IllegalArgumentException(e);
}
}
}