Transforming an XML File with XSL
This Example gives you a way to transform an XML File with XSL in a DOM document. JAXP (Java
API for XML Processing) is an interface which provides parsing of xml documents.
Here the Document BuilderFactory is used to create new DOM parsers. Some of the methods used in code given below for Transforming are:-
TransformerFactory factory =
TransformerFactory.newInstance():-TransformerFactory is a class that is used to create Transformer objects. A TransformerFactory instance can be used to create Transformer and Templates objects.
Templates template = factory.newTemplates(new StreamSource(new
FileInputStream(xslFilename))):-Creates a Template.Template is an Interface which may be used multiple times in a given session.
Xsl code for the program generated is:-
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" indent="yes"/>
<xsl:template match="girish">
<html>
<head>
<title>Girish</title>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
<xsl:template match="roseindia">
<xsl:value-of select="@key"/>=
<xsl:value-of select="@value"/>
<br></br>
</xsl:template>
</xsl:stylesheet>
|
Xml code for the program generated is:-
<?xml version="1.0" encoding="UTF-8"?>
<girish>
<entry key="key1" value="value1" />
<entry key="key2" />
</girish>
|
XMLtoXSL.java
/*
* @Program that Transforms an XML File with XSL
* XMLtoXSL.java
* Author:-RoseIndia Team
* Date:-23-July-2008
*/
import java.io.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class XMLtoXSL {
public static void main(String[] args) throws Exception {
new XMLtoXSL().xsl("t.xml", "gt.xml", "newstylesheet1.xsl");
}
public void xsl(String inputFilename, String outputFilename,
String xslFilename)throws Exception {
TransformerFactory factory = TransformerFactory.newInstance();
Templates template = factory.newTemplates(new StreamSource(
new FileInputStream(xslFilename)));
Transformer xformer = template.newTransformer();
Source source = new StreamSource(
new FileInputStream(inputFilename));
Result result = new StreamResult(
new FileOutputStream(outputFilename));
xformer.transform(source, result);
}
}
|
Output of the program:-
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Girish</title>
</head>
<body>
</body>
</html>
|
DownLoad Source Code