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. *

* * @param saxDriverClass 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"); } }