package xml.classInfo;
import java.io.*;
import futils.*;
import javax.xml.parsers.*; import org.w3c.dom.*; import org.xml.sax.*;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
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.StreamResult;
public class XsltDomWriter {
public static void main (String argv [])
throws IOException {
File inFile = Futil.getReadFile("select an XML file");
File outFile = new File(inFile.getParent() + "\\NewClassInfo.xml");
Document document = parse("file:" + inFile.getAbsolutePath());
transform(document, outFile);
}
private static Document parse (String uri)
throws IOException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(uri);
Element root = doc.getDocumentElement();
return doc;
}
catch (ParserConfigurationException e) {
System.out.println(
"DocumentBuilderFactory cannot be instantiated.\n"
+ e.getMessage ());
}
catch (SAXException e) {
System.out.println(
"** SAXException\n"
+ e.getMessage ());
Exception ex = e.getException ();
if (ex != null)
ex.printStackTrace ();
}
catch (IOException e) {
e.printStackTrace ();
}
return null;
}
private static void transform (Node node, File outFile) {
try {
TransformerFactory tf = TransformerFactory.newInstance ();
Transformer t = tf.newTransformer();
DOMSource source = new DOMSource(node);
StreamResult result = new StreamResult(outFile);
t.transform(source, result);
result = new StreamResult(System.out);
t.transform(source, result);
}
catch (TransformerConfigurationException e) {
System.out.println (
"Error creating the Transformer"
+ "\n" + e.getMessage());
Throwable x = e;
if (e.getException() != null)
x = e.getException();
x.printStackTrace();
}
catch (TransformerException e) {
System.out.println (
"Error during transformation"
+ "\n" + e.getMessage());
Throwable x = e;
if (e.getException() != null)
x = e.getException();
x.printStackTrace();
}
}
}