[jdom-interest] Passing JDOM to JAXP using SAX

Daniel Purucker dpu at daniel-purucker.de
Fri Apr 30 05:08:22 PDT 2004


Thanks to all of you,
somehow i thought there is no implementation of the 
javax.xml.Source-Interface for JDOM. Therefore i chose the "workaround" 
through SAX-Events. But apparently this idea was based on obolete 
information...
Using JDOMSource works like a charme...

Thanx,
Daniel

Am 30.04.2004 um 13:52 schrieb Laurent Bihanic:

>
> Why not using JDOMSource (to feed the input document to the XSLT 
> processor) and JDOMResult (to gather XSLT output as a JDOM 
> document/node list) ? For more information, see package 
> org.jdom.transform.
>
>    public static List transform(Document doc, String stylesheet)
>                                         throws JDOMException {
>      try {
>        Transformer transformer = TransformerFactory.newInstance()
>                              .newTransformer(new 
> StreamSource(stylesheet));
>        JDOMSource in = new JDOMSource(doc);
>        JDOMResult out = new JDOMResult();
>        transformer.transform(in, out);
>        return out.getResult();
>      }
>      catch (TransformerException e) {
>        throw new JDOMException("XSLT Trandformation failed", e);
>      }
>    }
>
> You can also use a Templates object and pass it as an argument :
>
>    public static List transform(Document doc, Templates stylesheet)
>                                         throws JDOMException {
>      try {
>        JDOMResult out = new JDOMResult();
>        stylesheet.newTransformer().transform(new JDOMSource(doc), out);
>        return out.getResult();
>      }
>      catch (TransformerException e) {
>        throw new JDOMException("XSLT Trandformation failed", e);
>      }
>    }
>
> Laurent
>
>
> Daniel Purucker wrote:
>> Hi,
>> i want to transform an jdom-document with xslt. Because i'm not able 
>> to pass JDOM-Output directly to JAXP, i'm using the workaround 
>> proposed by Eric Burke, to transform JDOM into SAX.
>> That's the code, but i allway get wired error-messages...
>> public static SAXResult JDOMtoSAX(TransformerFactory transFact, 
>> String stylesheet, Result ergebnis) {
>>     if(transFact.getFeature(SAXTransformerFactory.FEATURE)) {
>>       SAXTransformerFactory stf = (SAXTransformerFactory) transFact;
>>       // "xsltTransform.java": cannot resolve symbol: method 
>> newTransformerHandler     // (java.lang.String)in class 
>> javax.xml.transform.sax.SAXTransformerFactory       
>> TransformerHandler transHand = stf.newTransformerHandler(stylesheet);
>>       transHand.setResult(ergebnis);
>>       // "xsltTransform.java": cannot resolve symbol: class 
>> SAXOutputter in class     //xtree.xsltTransform at line 97, column 7
>>       SAXOutputter saxout = new SAXOutputter(transHand);
>>     }
>>     return saxout.output(jdomdoc);
>> }
>> What's wrong?
>> the "stylesheet" has to be an instance of 
>> "javax.xml.transform.Templates", but how do i create this?
>> Any help would be greatly appreciated. Thanx in advance,
>> Daniel
>




More information about the jdom-interest mailing list