Re: [xsl] XPath function for <xsl:apply-templates/>?

Subject: Re: [xsl] XPath function for <xsl:apply-templates/>?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 18 Nov 2013 14:19:01 +0000
On 18/11/2013 14:11, Christian Mahnke wrote:
might have been asked here before but is there some XPath function that works like <xsl:apply-templates/>?
This would be good for readability. Ill give you an example, currently I do this:

                         <xsl:variable name="content">
                             <xsl:apply-templates mode="filter"/>
                         <xsl:copy-of select="a18:field('place', $content)/>

What Iam asking for would look like this:

<xsl:copy-of select="a18:field('place', apply-templates('filter'))/>

Any thoughts? There is probably an extension for this.



well making mode a parameter in general is harder as it's a compile time constant in the normal syntax, but for a fixed mode you can doe

<xsl:function name="f:apply-templates-filter">
  <xsl:param name="seq"/>
  <xsl:apply-templates mode="filter" select="$seq"/>

<xsl:copy-of select="a18:field('place', f:apply-templates-filter(node())/>

Note you can't have an implicit default context in user defined functions so you need to pass in the sequence node() explicitly.


Current Thread