How to transform xml with xsl

The java class

import java.io.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;

public class BasicXsl {
        // This method applies the xslFilename to inFilename and writes
        // the output to outFilename.
        public static void xsl(String inFilename, String outFilename, String xslFilename) {
                try {
                        // Create transformer factory
                        TransformerFactory factory = TransformerFactory.newInstance();

                        // Use the factory to create a template containing the xsl file
                        Templates template = factory.newTemplates(new StreamSource(new FileInputStream(xslFilename)));

                        // Use the template to create a transformer
                        Transformer xformer = template.newTransformer();

                        // Prepare the input and output files
                        Source source = new StreamSource(new FileInputStream(inFilename));
                        Result result = new StreamResult(new FileOutputStream(outFilename));

                        // Apply the xsl file to the source file and write the result to the output file
                        xformer.transform(source, result);
                } catch (FileNotFoundException e) {
                } catch (TransformerConfigurationException e) {
                        // An error occurred in the XSL file
                } catch (TransformerException e) {
                        // An error occurred while applying the XSL file
                        // Get location of error in input file
                        SourceLocator locator = e.getLocator();
                        int col = locator.getColumnNumber();
                        int line = locator.getLineNumber();
                        String publicId = locator.getPublicId();
                        String systemId = locator.getSystemId();
                }
        }
}

The sample xml file

<?xml version="1.0" encoding="UTF-8"?>
<map>
        <entry key="key1" value="value1" />
        <entry key="key2" />
</map>

The xsl stylesheet

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
        <xsl:output method="html" indent="yes"/>

        <xsl:template match="map">
                <HTML>
                <HEAD>
                <TITLE>Map</TITLE>
                </HEAD>
                <BODY>
                        <xsl:apply-templates/>
                </BODY>
                </HTML>
        </xsl:template>

        <xsl:template match="entry">
                <xsl:value-of select="@key"/>=<xsl:value-of select="@value"/>
                <xsl:text><br /></xsl:text>
        </xsl:template>
</xsl:stylesheet>

The resulting output

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Map</TITLE>
</HEAD>
<BODY>
        key1=value1<br />
        key2=<br />
</BODY>
</HTML>

References

Page Comments (Click to edit)






[Click to add or edit comments])

Please prepend comments below including a date

Design by N.Design Studio, adapted by solidGone.org (version 1.0.0)
Have a nice day.