Hi,

I am getting the following stack trace:

org.xml.sax.SAXException: Can't have more than one root on a DOM!
        at org.apache.xml.utils.DOMBuilder.append(DOMBuilder.java:202)
        at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:307)
        at
org.apache.xalan.transformer.QueuedStartElement.flush(QueuedStartElement.jav
a:357)
        at
org.apache.xalan.transformer.ResultTreeHandler.flushPending(ResultTreeHandle
r.java:770)
        at
org.apache.xalan.transformer.ResultTreeHandler.endElement(ResultTreeHandler.
java:279)
        at
org.apache.xalan.templates.ElemLiteralResult.execute(ElemLiteralResult.java:
643)
        at
org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.ja
va:499)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
a:193)
        at
org.apache.xalan.templates.ElemForEach.transformSelectedNodes(ElemForEach.ja
va:499)
        at
org.apache.xalan.templates.ElemApplyTemplates.execute(ElemApplyTemplates.jav
a:193)
        at
org.apache.xalan.transformer.TransformerImpl.executeChildTemplates(Transform
erImpl.java:2251)
        at
org.apache.xalan.transformer.TransformerImpl.applyTemplateToNode(Transformer
Impl.java:2134)
        at
org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerImpl.j
ava:1246)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
504)
        at
org.apache.xalan.transformer.TransformerImpl.transform(TransformerImpl.java:
1174)
        at XSLTComponent.handle(XSLTComponent.java:60)

The code looks like this:

In configuration function:
 
                static TransformerFactory tFactory =
TransformerFactory.newInstance();
                private URL stylesheetURL = "xsl";
                Templates translet = tFactory.newTemplates(new
StreamSource(stylesheetURL.toString()));

And then this function is being called multiple times:

        public void handle (Node node) throws FilterException {

                DOMSource domSource = new DOMSource(node);
                DOMResult res = new DOMResult();
                translet.newTransformer().transform(domSource, res);
<-------------------BLOWS UP HERE

                ...

                ...


This works fine with either SAXSource or StreamSource, however DOMSource
blows up the second time 
handle() is called. 

Thanks.
 

        












Reply via email to