Thomas Darimont
Erfahrenes Mitglied
Hier mal ein Beispiel zur Trabnsformation eines XML Dokuments mittels XSL in ein HTML Dokument mit Standard Java (1.4).
Die Klasse XMLTest:
Die Datei Data.xml:
Das Stylesheet Data.xsl:
Data.xml und Data.xsl kopiert ihr bitte ins selbe Verzeichnis in der eure kompilierte XMLTest.class liegt...
Wenn ihr das ganze dann mit:
Findet ihr unter eurem Laufwerk c: eine Datei namens Data.html.
Das ist die über das Stylesheet generierte Ausgabe
HTH
Gruß Tom
Die Klasse XMLTest:
Code:
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:
Code:
<?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:
Code:
<?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:
kompiliert und danach folgendes absetztjavac XMLTest.java
java XMLTest
Findet ihr unter eurem Laufwerk c: eine Datei namens Data.html.
Das ist die über das Stylesheet generierte Ausgabe
HTH
Gruß Tom