[howto.xml]
<?xml version="1.0"?> <howto> <topic> <title>Java</title> <url>http://www.rgagnon/javahowto.htm</url> </topic> <topic> <title>PowerBuilder</title> <url>http://www.rgagnon/pbhowto.htm</url> </topic> <topic> <title>Javascript</title> <url>http://www.rgagnon/jshowto.htm</url> </topic> <topic> <title>VBScript</title> <url>http://www.rgagnon/vbshowto.htm</url> </topic> </howto>
[howto.xsl]
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <head><title>Real's HowTo</title></head> <body> <table border="1"> <tr> <th>Title</th> <th>URL</th> </tr> <xsl:for-each select="howto/topic"> <tr> <td><xsl:value-of select="title"/></td> <td><xsl:value-of select="url"/></td> </tr> </xsl:for-each> </table> </body></html> </xsl:template> </xsl:stylesheet>
[HowToXSLT.java]
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
public class HowToXSLT {
/**
* @param args
*/
public static void main(String[] args) {
TransformerFactory tFactory=TransformerFactory.newInstance();
InputStream xlsStream=HowToXSLT.class.getClassLoader().getResourceAsStream("howto.xsl");
InputStream xmlStream=HowToXSLT.class.getClassLoader().getResourceAsStream("howto.xml");
StreamSource streamSource=new StreamSource(xlsStream);
try {
Transformer transformer=tFactory.newTransformer(streamSource);
StreamSource source=new StreamSource(xmlStream);
FileOutputStream fout=new FileOutputStream("src/howto.html");
StreamResult result=new StreamResult(fout);
transformer.transform(source, result);
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (TransformerException e) {
e.printStackTrace();
}
}
}