Transformando XML em HTML utilizando XSLT

Veja nesta dica um simples código de utilização do XSLT.

[arquivo.xml]
<?xml version="1.0"?>
<howto>
  <topic>
      <title>Java</title>
      <url>http://www.devmedia/javahowto.htm</url>
  </topic>
  <topic>
      <title>PowerBuilder</title>
      <url>http://www.devmedia/pbhowto.htm</url>
  </topic>
  <topic>
      <title>Javascript</title>         
      <url>http://www.devmedia/jshowto.htm</url>
  </topic>
  <topic>
      <title>VBScript</title>
      <url>http://www.devmedia/vbshowto.htm</url>
  </topic>

</howto>

 

[arquivo.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>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]
// jdk 1.4.1
import javax.xml.transform.*;
import java.net.*;
import java.io.*; 

public class HowToXSLT {public static void main(String[] args) {
  try {
    TransformerFactory tFactory = TransformerFactory.newInstance();
    Transformer transformer = tFactory.newTransformer(
new javax.xml.transform.stream.StreamSource
("arquivo.xsl"));     transformer.transform(
new javax.xml.transform.stream.StreamSource(
"arquivo.xml"), 
     
new javax.xml.transform.stream.StreamResult
(
new FileOutputStream("arquivo.html")));
    } catch (Exception e) {
    e.printStackTrace( );
    }
  }
}