package xml.musicCatalog;
import java.io.*;
import org.w3c.dom.*;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
public class XmlTransformer {
private XmlTransformer () { }
public static void writeXml (Document document, String uri)
throws Exception {
try {
File out = new File(uri);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(document.getDocumentElement());
StreamResult result = new StreamResult(out);
t.transform(source, result);
}
catch (TransformerConfigurationException e) {
Throwable ex = e.getException();
String msg = null;
if (ex != null) {
ex.printStackTrace();
msg = ex.getMessage();
}
throw new Exception (
"** TransformerConfigurationException:\n"
+ e.getMessage ());
}
catch (TransformerException e) {
Throwable ex = e.getException();
String msg = null;
if (ex != null) {
ex.printStackTrace();
msg = ex.getMessage();
}
throw new Exception(
"** TransformerException:\n"
+ e.getMessage());
}
}
public static void transform (Node node, File stylesheet, BufferedWriter out) {
try {
TransformerFactory tf = TransformerFactory.newInstance();
StreamSource ss = new StreamSource(stylesheet);
Transformer t = tf.newTransformer(ss);
DOMSource ds = new DOMSource(node);
StreamResult result = new StreamResult(out);
t.transform(ds, result);
}
catch (TransformerConfigurationException e) {
System.out.println("\n** Transformer Factory error: "
+ e.getMessage());
Throwable th = e;
if (e.getException() != null)
th = e.getException();
th.printStackTrace();
}
catch (TransformerException e) {
System.out.println("\n** Transformation error: "
+ e.getMessage());
Throwable th = e;
if (e.getException() != null)
th = e.getException();
th.printStackTrace();
}
}
}