Changeset 3451 for trunk


Ignore:
Timestamp:
2002-10-11T13:31:49+13:00 (22 years ago)
Author:
kjdon
Message:

new version of transform, with stylesheet already parsed into a Document

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl3/src/java/org/greenstone/gsdl3/util/XMLTransformer.java

    r3362 r3451  
    2929import javax.xml.transform.stream.StreamResult;
    3030
     31import org.w3c.dom.Document;
    3132import org.w3c.dom.Node;
     33import org.w3c.dom.NodeList;
    3234
    3335// other java classes
    3436import java.io.StringReader;
    3537import java.io.StringWriter;
     38import java.io.File;
    3639
    37 /** XMLConverter - utitlity class for greenstone
     40/** XMLTransformer - utility class for greenstone
    3841 *
    39  * parses XML Strings into Documents, converts Nodes to Strings
    40  * different parsers have different behaviour - can experiment in here
     42 * transforms xml using xslt
    4143 *
    4244 * @author <a href="mailto:[email protected]">Katherine Don</a>
     
    4446 */
    4547public class XMLTransformer {
    46   /** The transformer we're using */
    47   TransformerFactory t_factory_=null;
     48
     49  /** The transformer factory we're using */
     50    TransformerFactory t_factory_=null;
    4851 
    4952  /**
     
    5760    public XMLTransformer() {
    5861
    59     //System.out.println("system property="+System.getProperty("javax.xml.transform.TransformerFactory"));
    60 
     62    // make sure we are using the xalan transformer
    6163    System.setProperty("javax.xml.transform.TransformerFactory", "org.apache.xalan.processor.TransformerFactoryImpl");
    6264    try {
     
    6668        System.out.println("XMLTransformer() exception "+e.getMessage());
    6769    }
    68    
    69     //System.out.println("system property="+System.getProperty("javax.xml.transform.TransformerFactory"));
    7070    }
    7171
     
    7575   * Transform an XML document using a XSLT stylesheet
    7676   *
    77    * @param stylesheet an XSLT stylesheet
     77   * @param stylesheet a filename for an XSLT stylesheet
    7878   * @param xml_in the XML to be transformed
    7979   * @return the transformed XML
     
    111111        return output.toString();
    112112    } catch (TransformerConfigurationException e) {
     113        System.err.println("XMLTransformer: couldn't create transformer object: "+e.getMessageAndLocation());
     114        return "";
     115    } catch (TransformerException e) {
     116        System.err.println("XMLTransformer: couldn't transform the source: " + e.getMessage());
     117        return "";
     118    }   
     119    }
     120
     121 
     122    public String transform(Document stylesheet, Node xml_in) {
     123
     124    try {
     125        // Use the TransformerFactory to process the stylesheet Source and generate a Transformer.
     126        Transformer transformer = t_factory_.newTransformer(new DOMSource(stylesheet));
     127       
     128        // Use the Transformer to transform an XML Source and send the output to a Result object.
     129        StringWriter output = new StringWriter();
     130       
     131        transformer.transform(new DOMSource(xml_in), new StreamResult(output));
     132        return output.toString();
     133    } catch (TransformerConfigurationException e) {
    113134        System.err.println("XMLTransformer: couldn't create transformer object: "+e.getMessage());
    114135        return "";
     
    118139    }   
    119140    }
     141
     142   
    120143}
    121144
Note: See TracChangeset for help on using the changeset viewer.