|
Subject: Re: Designs for XSLT functions (Was: Re: [xsl] RE: syntax sugar for call-template) From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx> Date: Thu, 22 Feb 2001 22:09:32 +0000 |
Hi Steve,
> Why couldn't you implement the function without
> recursion with a technique like:
>
> <exsl:function>
> <xsl:variable name="foo">
> <xsl:for-each>
> <xsl:sort ... >
> <xsl:if test="5 <= position()">
> <xsl:copy-of select="."/>
> </xsl:if>
> </xsl:for-each>
> </xsl:variable>
> <exsl:return select="$foo"/>
> </exsl:function>
Because that creates a new node set stuffed full of *copies* of the
nodes, not the original nodes. You could do:
<exsl:function>
<xsl:param name="nodes" />
<xsl:variable name="foo">
<xsl:for-each select="$nodes">
<xsl:sort />
<xsl:if test="5 <= position()">
<node id="{generate-id()}" />
</xsl:if>
</xsl:for-each>
</xsl:variable>
<exsl:return select="$nodes[generate-id() = $foo/node/@id]" />
</exsl:function>
as a non-recursive and fairly hacky solution.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: Designs for XSLT functions (Was, Steve Muench | Thread | Re: Designs for XSLT functions (Was, David Carlisle |
| [xsl] cannot reach the inner tags, Franz Figl | Date | Re: [xsl] Newbie needs xsl, Jeni Tennison |
| Month |