You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@xml.apache.org by Mats Norén <ma...@spectral.se> on 2000/01/25 04:50:38 UTC
Xalan + Xerces problem
Hi
I've just started using xalan and xerces...my idea is to create a
DOM-representation of various databasefields, do some calculations and
then process them with xalan...
Just to get started I rewrote some code from the xalandistribution and
tried to process it, however it didn't succeed.
When I run the class I get the following error:
Exception in thread "main" DTMLiaison can not handle nodes of typeclass
org.apache.xerces.dom.ElementImpl
at org.apache.xalan.xslt.XSLTEngineImpl.
at org.apache.xalan.xslt.XSLTEngineImpl.
at org.apache.xalan.xslt.XSLTEngineImpl.
at transform.main(transform.java:114)
The code looks like this:
import org.apache.xalan.xslt.XSLTProcessor;
import org.apache.xalan.xslt.XSLTInputSource;
import org.apache.xalan.xslt.XSLTResultTarget;
import org.apache.xalan.xslt.XSLTProcessorFactory;
import org.apache.xalan.xpath.XPathException;
import org.apache.xalan.xslt.XSLTEngineImpl;
import org.apache.xalan.xpath.xml.TreeWalker;
import org.apache.xalan.xpath.xml.FormatterToXML;
import org.apache.xerces.dom.*;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.Reader;
import org.w3c.dom.*;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class test
{
public static void main(String[] args)
throws java.io.IOException,
java.net.MalformedURLException,
org.xml.sax.SAXException
{
Document doc = new DocumentImpl();
Element el = doc.createElement("legend");
doc.appendChild(el);
for (int i=0; i < 10; i++){
Element child = doc.createElement("text" + i);
child.setAttribute("ID", "" + i);
el.appendChild(child);
}
XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
XSLTInputSource xmlID = new XSLTInputSource(doc);
XSLTInputSource stylesheetID = new XSLTInputSource("test.xsl");
Document out = new DocumentImpl();
XSLTResultTarget resultTarget = new XSLTResultTarget(out);
processor.process(xmlID, stylesheetID, resultTarget);
PrintWriter pw = new PrintWriter( System.out );
FormatterToXML fl = new FormatterToXML(pw);
TreeWalker tw = new TreeWalker(fl);
tw.traverse(out);
The row that seem to cause the problem is
XSLTInputSource xmlID = new XSLTInputSource(doc);
When I use the originalfrom with a reference to a file it works just
fine...
But I would like to create my own document within the class and not load
it from file...
Can anyone tell me how to do that ?
/Mats