SimpleXMLTransform.java Source code

Java tutorial

Introduction

Here is the source code for SimpleXMLTransform.java

Source

import javax.xml.transform.ErrorListener;
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 SimpleXMLTransform {
    static public void main(String[] arg) {
        if (arg.length != 3) {
            System.err.println("Usage: SimpleXMLTransform " + "<input.xml> <input.xsl> <output>");
            System.exit(1);
        }
        String inXML = arg[0];
        String inXSL = arg[1];
        String outTXT = arg[2];

        SimpleXMLTransform st = new SimpleXMLTransform();
        try {
            st.transform(inXML, inXSL, outTXT);
        } catch (TransformerConfigurationException e) {
            System.err.println("Invalid factory configuration");
            System.err.println(e);
        } catch (TransformerException e) {
            System.err.println("Error during transformation");
            System.err.println(e);
        }
    }

    public void transform(String inXML, String inXSL, String outTXT)
            throws TransformerConfigurationException, TransformerException {

        TransformerFactory factory = TransformerFactory.newInstance();

        StreamSource xslStream = new StreamSource(inXSL);
        Transformer transformer = factory.newTransformer(xslStream);
        transformer.setErrorListener(new MyErrorListener());

        StreamSource in = new StreamSource(inXML);
        StreamResult out = new StreamResult(outTXT);
        transformer.transform(in, out);
    }
}

class MyErrorListener implements ErrorListener {
    public void warning(TransformerException e) throws TransformerException {
        show("Warning", e);
        throw (e);
    }

    public void error(TransformerException e) throws TransformerException {
        show("Error", e);
        throw (e);
    }

    public void fatalError(TransformerException e) throws TransformerException {
        show("Fatal Error", e);
        throw (e);
    }

    private void show(String type, TransformerException e) {
        System.out.println(type + ": " + e.getMessage());
        if (e.getLocationAsString() != null)
            System.out.println(e.getLocationAsString());
    }
}

/*
 The Basic Form of an XSL Stylesheet Document
    
<?xml version="1.0"?> 
<xsl:stylesheet
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">
  <xsl:template match="/">
Ignore the input and output this line.
  </xsl:template>
</xsl:stylesheet>
    
    
<!-- XML document-->
    
    
<folks>
<person>
    <name>Jack Lee</name>
    <phone>555-3333</phone>
</person>
</folks>
    
    
*/