xsl-list
[Top] [All Lists]

Re: [xsl] recreate apply-templates using a function

2012-02-12 10:30:21
Hi Dimitre,

On 12 February 2012 15:48, Dimitre Novatchev <dnovatchev(_at_)gmail(_dot_)com> 
wrote:
On Sun, Feb 12, 2012 at 5:24 AM, Andrew Welch 
<andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> wrote:
If you needed to call apply-templates using a function call (say as
part of an xpath) any reason why this wouldn't be fine:

<xsl:function name="f:apply-templates" as="node()*">
   <xsl:param name="context" as="node()*"/>
   <xsl:apply-templates select="$context"/>
</xsl:function>

with:

<xsl:sequence select="f:apply-templates(child::node())"/>

(ignoring modes and params etc)

Seems ok to me...

Except when you use it as the second operand of the / operator.

What's the issue there?

It should really have have a return type of item()*, and the param
should really be called 'node-list' rather than 'context':

<xsl:function name="f:apply-templates" as="item()*">
   <xsl:param name="node-list" as="node()*"/>
   <xsl:apply-templates select="$node-list/>
</xsl:function>

anything else?

-- 
Andrew Welch
http://andrewjwelch.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--