# Neues Beispiel zu XML, XSLT  Transformation nach HTML mit Standard Java(1.4)



## Thomas Darimont (9. September 2004)

Hier mal ein Beispiel zur Trabnsformation eines XML Dokuments mittels XSL in ein HTML Dokument  mit Standard Java (1.4).

Die Klasse XMLTest:

```
import java.io.File;

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 XMLTest {

	public static void main(String[] args) {
		StreamSource stylesheet = new StreamSource(XMLTest.class
				.getResourceAsStream("./Data.xsl"));
		StreamSource src = new StreamSource(XMLTest.class
				.getResourceAsStream("./Data.xml"));
		StreamResult result = new StreamResult(new File("c:/Data.html"));

		TransformerFactory factory = TransformerFactory.newInstance();
		try {
			Transformer t = factory.newTransformer(stylesheet);
			t.transform(src, result);
		} catch (TransformerConfigurationException e) {
			e.printStackTrace();
		} catch (TransformerException e) {
			e.printStackTrace();
		}

	}
}
```

Die Datei Data.xml:

```
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="./Data.xsl"?>
<firma name="XYZ Company">
	<angestellte>
		<angestellter name="Thomas" alter="20"/>
		<angestellter name="Richard" alter="22"/>
	</angestellte>
</firma>
```

Das Stylesheet Data.xsl:

```
<?xml version="1.0"?>
<!--Data.xsl-->
<xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
      <html>
         <head>
            <title>
               <xsl:value-of select="firma/@name"/>
            </title>
        </head>
        <body>
               <xsl:value-of select="firma/@name"/>
	       <table border="2">
	          <xsl:for-each select="/firma/angestellte/angestellter">
                  <tr>
                    <td><xsl:value-of select="@name"/></td>
                    <td><xsl:value-of select="@alter"/></td>
                  </tr>
	          </xsl:for-each>
	       </table>
        </body>
      </html>
   </xsl:template>
</xsl:stylesheet>
```

Data.xml und Data.xsl kopiert ihr bitte  ins selbe Verzeichnis in der eure kompilierte XMLTest.class liegt...

Wenn ihr das ganze dann mit:


> javac XMLTest.java


kompiliert  und danach folgendes absetzt


> java XMLTest



Findet ihr unter eurem Laufwerk c: eine Datei namens Data.html.
Das ist die über das Stylesheet generierte Ausgabe 


HTH
Gruß Tom


----------

