Subject: Re: [xsl] Pipelining 2 stylesheets From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Thu, 27 Aug 2009 18:28:42 +0200 |
I want to pipeline 2 templates opendoc2xhtml.xsl (from OpenOffice) and xhtml2epub.xsl (my own) into a single opendoc2epub, that is, to pass the result of the first one into the second one. As I understand, the common technique is to get the first result into a variable, and then run the second transformation on it (assuming XSLT 2).
But I have a problem with including the stylesheets. If i try to xsl:include both templates and define a template for the root node, I get a conflict, because opendoc2xhtml also has one. And I don't want to add modes or anything to it because it comes from an external source, but I still need to override it somehow to put the result into a variable in the first place. Is it where xsl:import is used? I tried importing opendoc2xhtml.xsl as well and calling xsl:apply-imports from the root template, but then only root children were processed.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:x="http://www.w3.org/1999/xhtml" version="2.0">
<xsl:import href="opendoc2xhtml.xsl"/> <xsl:include href="xhtml2epub.xsl"/>
<xsl:template match="document-node(element(opendocrootname))"> <xsl:variable name="temp"> <xsl:apply-imports/> </xsl:variable> <xsl:apply-templates select="$temp"/> </xsl:template>
<xsl:template match="document-node(element(x:html))"> <xsl:next-match/> </xsl:template>
Martin Honnen http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Pipelining 2 stylesheets, Michael Kay | Thread | RE: [xsl] Pipelining 2 stylesheets, Emmanuel Bégué |
RE: [xsl] Pipelining 2 stylesheets, Michael Kay | Date | RE: [xsl] Pipelining 2 stylesheets, Emmanuel Bégué |
Month |