|
Subject: Re: [xsl] DSSSL->XSLT; problems implementing node-list-first/node-list-rest From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx> Date: Tue, 27 Mar 2001 10:41:52 +0100 |
Hi Aidan,
I think that your problem rests in the fact that when you first call
the proc-nl template, you're passing a result tree fragment (i.e. a
single root node) whereas in later calls you're passing a node set
containing a number of item elements.
You could pass all the item elements each time, so change the first
call (in the list-matching template) to:
<xsl:call-template name="proc-nl">
<xsl:with-param name="nl" select="saxon:nodeSet($sorted)/*" />
</xsl:call-template>
and change the proc-nl template to:
<xsl:template name="proc-nl">
<xsl:param name="nl"/>
<called>
<xsl:for-each select="$nl">
<xsl:message>
<xsl:copy-of select="."/>
</xsl:message>
</xsl:for-each>
</called>
<xsl:if test="$nl">
<xsl:apply-templates select="$nl[1]"/>
<foo>bar</foo>
<xsl:call-template name="proc-nl">
<with-param name="nl" select="$nl[position() != 1]"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
Or change the proc-nl template so that it creates a new result tree
fragment to pass each time. In other words, change the recursive call
within the proc-nl template to:
<xsl:call-template name="proc-nl">
<with-param name="nl">
<xsl:copy-of
select="saxon:nodeSet($nl)/*[position() != 1]" />
</xsl:with-param>
</xsl:call-template>
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| [xsl] DSSSL->XSLT; problems impleme, AKillian | Thread | Re: [xsl] DSSSL->XSLT; problems imp, Francis Norton |
| Re: [xsl] Can one element have more, Jeni Tennison | Date | RE: [xsl] xsl:output question, Michael Kay |
| Month |