/**
* Licensed under the GNU LGPL v.2.1 or later.
*/
package info.freelibrary.util;
import java.io.StringWriter;
import javax.xml.transform.OutputKeys;
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 org.w3c.dom.Node;
/**
* Utilities for working with W3C DOMs.
*
* @author <a href="mailto:ksclarke@ksclarke.io">Kevin S. Clarke</a>
*/
public class DOMUtils {
private DOMUtils() {
}
/**
* Returns an XML string representation of the supplied node.
*
* @param aNode A W3C node
* @return An XML string representation of the supplied node
* @throws TransformerException If there is trouble with the XSL transformation
*/
public static String toXML(final Node aNode) throws TransformerException {
try {
final TransformerFactory transFactory = TransformerFactory.newInstance();
final Transformer transformer = transFactory.newTransformer();
final StringWriter buffer = new StringWriter();
final DOMSource domSource = new DOMSource(aNode);
final StreamResult streamResult = new StreamResult(buffer);
final String omitDeclaration = OutputKeys.OMIT_XML_DECLARATION;
transformer.setOutputProperty(omitDeclaration, "yes");
transformer.transform(domSource, streamResult);
return buffer.toString();
} catch (final TransformerConfigurationException details) {
throw new RuntimeException(details);
}
}
}