|
Subject: Re: Designs for XSLT functions (Was: Re: [xsl] RE: syntax sugar for call-template) From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx> Date: Fri, 23 Feb 2001 07:48:55 +0000 |
David C. wrote:
> Personally an xsl:append looks deeply suspect to me, if it's
> required for functions why isn't it required for the almost
> identical situation of binding node sets to variables? If it is also
> required for that is "append" the right concept for a declarative
> language, or should it be more like
> <xsl:variable select="foo[postion('some named construct corresponding
> to an xsl:sort setup') < 5]"/>
So what about this:
<xsl:variable select="$nodes[sort:position($nodes) < 5]" />
<exsl:function name="sort:position">
<xsl:param name="node-set" select="/.." />
<xsl:variable name="current" select="." />
<xsl:choose>
<xsl:when test="count($current | $node-set) = count($node-set)">
<xsl:for-each select="$node-set">
<xsl:sort />
<xsl:if test="count(.|$current) = 1">
<exsl:result select="position()" />
</xsl:if>
</xsl:for-each>
</xsl:when>
<xsl:otherwise>
<exsl:return select="0" />
</xsl:otherwise>
</xsl:choose>
</exsl:function>
Naturally in a production version there would be more
parameters/arguments to allow for different sort orders etc.
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, Clark C. Evans | Thread | Re: Designs for XSLT functions (Was, David Carlisle |
| [xsl] Displaying Problem., Srinivas, Santoshkum | Date | Re: [xsl] Poluting XSLT??? (Was Re:, Jeni Tennison |
| Month |