package mco.costanalysis.combat;
import java.util.*;
import java.io.*;
// JDOM
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
// Xalan-J 2
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import java.io.File;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
class XML2HTML {
/** Default SAX Driver class to use */
private static final String DEFAULT_SAX_DRIVER_CLASS =
"org.apache.xerces.parsers.SAXParser";
/** SAX Driver Class to use */
private String saxDriverClass;
/** {@link SAXBuilder}
instance to use */
private SAXBuilder builder;
/**
*
* This will create an instance of {@link SAXBuilder}
* for use in the rest of this program.
*
String
name of driver class to use.
*/
public XML2HTML() {
this.saxDriverClass = DEFAULT_SAX_DRIVER_CLASS;
builder = new SAXBuilder(saxDriverClass);
}
public XML2HTML(String saxDriverClass) {
this.saxDriverClass = saxDriverClass;
builder = new SAXBuilder(saxDriverClass);
}
public void transform(String xmlFile, String xslFile)
throws Exception
{
Document sourceDoc = builder.build(new File(xmlFile));
File xslt = new File(xslFile);
XMLOutputter xmlOutputter = new XMLOutputter();
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Templates stylesheet = transformerFactory.newTemplates(
new StreamSource( xslt ) );
Transformer processor = stylesheet.newTransformer();
PipedInputStream sourceIn = new PipedInputStream();
PipedOutputStream sourceOut = new PipedOutputStream( sourceIn );
StreamSource source = new StreamSource( sourceIn );
PipedInputStream resultIn = new PipedInputStream();
PipedOutputStream resultOut = new PipedOutputStream( resultIn );
StreamResult result = new StreamResult( resultOut );
xmlOutputter.output( sourceDoc, sourceOut );
sourceOut.close();
processor.transform( source, result );
resultOut.close();
Document targetDoc = builder.build( resultIn );
xmlOutputter.output( targetDoc, System.out);
}
public static void main(String[] args) throws Exception
{
XML2HTML x2h = new XML2HTML();
x2h.transform("su.xml", "su.xsl");
}
}