Subject: [xsl] DSSSL->XSLT; problems implementing node-list-first/node-list-rest From: AKillian@xxxxxxxxxxx Date: Mon, 26 Mar 2001 20:22:02 +0100 |
Hi, I am trying to translate a complex piece of DSSSL to XSLT and I need to implement the equivalent of: node-list-first/node-list-rest to use recursive 'xsl:call-template's. I cannot get the following piece of test code (james's sort-uniq.xsl butchered to use a recursive node list processor) to work with either XT or Saxon (6.0.2): <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon" version="1.0"> <xsl:template match="list"> <xsl:variable name="sorted"> <xsl:for-each select="item"> <xsl:sort/> <xsl:copy-of select="."/> </xsl:for-each> </xsl:variable> <html><body><ul> <xsl:call-template name="proc-nl"> <xsl:with-param name="nl" select="$sorted"/> </xsl:call-template> </ul></body></html> </xsl:template> <xsl:template match="item"> <li><xsl:apply-templates/></li> </xsl:template> <xsl:template name="proc-nl"> <xsl:param name="nl"/> <called> <xsl:for-each select="saxon:nodeSet($nl)"> <xsl:message> <xsl:copy-of select="."/> </xsl:message> </xsl:for-each> </called> <xsl:if test="string-length($nl) != 0"> <xsl:apply-templates select="saxon:nodeSet($nl)/*[1]"/> <foo>bar</foo> <xsl:call-template name="proc-nl"> <with-param name="nl" select="saxon:nodeSet($nl)/*[position()!='1']"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet> This is the output. As you can see, instead of 'node-list-rest', nothing is being passed to the recursive call to 'proc-nl'. I have passing the whole $nl, the first item, a simple string, but nothing is getting through. Also, if I replace the <xsl:apply-templates> with a call to a different template, it didn't get the first node either. I am perplexed. aidan@development 314> java com.icl.saxon.StyleSheet sort-uniq.xml aidan_test_saxon.xsl <html xmlns:saxon="http://icl.com/saxon"> <body> <ul> <called> <item>A</item> <item>A</item> <item>A</item> <item>A</item> <item>A</item> <item>A</item> <item>B</item> <item>C</item> <item>C</item> <item>D</item> <item>D</item> <item>E</item> </called> <li>A</li> <foo>bar</foo> <called></called> </ul> </body> </html>aidan@development 315> This is the source: </html>aidan@development 315> more sort-uniq.xml <list> <item>D</item> <item>D</item> <item>A</item> <item>A</item> <item>B</item> <item>A</item> <item>A</item> <item>C</item> <item>C</item> <item>A</item> <item>A</item> <item>E</item> </list> aidan@development 316> Any help appreciated, Aidan Killian XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Profiling XSLT Transforma, Scott_Boag | Thread | Re: [xsl] DSSSL->XSLT; problems imp, Jeni Tennison |
RE: [xsl] XSL:if condition shows ru, Preethi Suthakar | Date | RE: [xsl] XSL:if condition shows ru, Diamond, Jason |
Month |