package xml.classInfo;
import java.io.*;
import futils.*;
import org.xml.sax.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
public class XsltXml2Html {
public static void main (String[] args) {
try {
File xmlFile = Futil.getReadFile("select an XML file");
File stylesheet = Futil.getReadFile("select a stylesheet");
String fn = xmlFile.getName();
fn = fn.substring (0, fn.lastIndexOf("."));
File htmlFile = new File(
xmlFile.getParent() + "\\" + fn + ".html");
BufferedWriter out = new BufferedWriter(
new FileWriter(htmlFile));
Document document = parse(xmlFile);
transform(document, stylesheet, out);
out.flush();
out.close();
System.out.println("HTML output written to:\n" + htmlFile.toString());
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
private static Document parse (File xmlFile) throws IOException {
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder db = factory.newDocumentBuilder();
Document document = db.parse(xmlFile);
return document;
}
catch (SAXException e) {
Exception x = e;
if (e.getException() != null)
x = e.getException();
x.printStackTrace();
}
catch (ParserConfigurationException e) {
e.printStackTrace();
}
return null;
}
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 tce) {
System.out.println ("\n** Transformer Factory error");
System.out.println (" " + tce.getMessage());
Throwable x = tce;
if (tce.getException() != null)
x = tce.getException();
x.printStackTrace();
}
catch (TransformerException te) {
System.out.println ("\n** Transformation error");
System.out.println(" " + te.getMessage());
Throwable x = te;
if (te.getException() != null)
x = te.getException();
x.printStackTrace();
}
}
}