Mega Code Archive

 
Categories / Java / XML
 

A Program That Performs XML Transformations

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> */