This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Feeding DOMs to XSLT Processors
- To: volkmann at inlink dot com, xsl-list at mulberrytech dot com
- Subject: Re: Feeding DOMs to XSLT Processors
- From: Michael Harry Scepaniak <ihispanic at yahoo dot com>
- Date: Tue, 8 Feb 2000 05:15:33 -0800 (PST)
- Reply-To: xsl-list at mulberrytech dot com
Mark,
This is derived from my current, working code:
StylesheetRoot styRoot = null;
XSLTEngineImpl xsltEI = null;
//...
XercesLiaison xercesLiaison = new XercesLiaison();
this.xsltEI = new XSLTEngineImpl(xercesLiaison);
try
{
this.styRoot = this.xsltEI.processStylesheet("foo.xsl");
}
catch(SAXException ex){ }
ByteArrayOutputStream byteout = new ByteArrayOutputStream();
XSLTResultTarget xsltResultTarget = new XSLTResultTarget(byteout);
//Create your DOM Document
//Document document = ...
try
{
this.styRoot.process(this.xsltEI, document, xsltResultTarget);
}
catch(SAXException ex){ }
System.out.println(byteout.toString());
Mike....
> From: Paul Levin <plevin@bii.com>
> Date: Thu, 03 Feb 2000 13:27:20 -0500
>
> Mike,
> Using Xerces (XML DOM implementation and parser) and Xalan (XSLT)
you
> do the following:
>
> 1) build your DOM using methods in
org.apache.xerces.dom.DocumentImpl.
> 2) compile your XSL stylesheet, from a file, into a
> org.apache.xalan.xslt.StylesheetRoot, using
> org.apache.xalan.xslt.XSLTEngineImpl.processStylesheet(). Be sure to
> construct the XSLTEngineImpl with an
> org.apache.xalan.xpath.xdom.XercesLiaison.
> 3) apply the StylesheetRoot to the DOM using
> org.apache.xalan.xslt.StylesheetRoot.process().
> 4) the result of process() is another DOM. If your stylesheet
generated
> HTML then this DOM has HTML nodes. process() has the ability to
render
> this DOM, or you use some other xalan class to render this DOM to
text. (I
> do not know the name of this class off-hand, because I needed to
write my
> own renderer, since I output something other than XML, HTML and
TEXT.)
If anyone has been successful with this approach, I'd appreciate seeing
the
code that does this.
I can't get this to work. I get the following error.
"DTMLiaison can not handle nodes of typeclass
org.apache.xerces.dom.DocumentImpl"
Mark Volkmann
__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list