[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XPath function for ?


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:
Hi,
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:variable>
                         <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.

Best,
Christian

xmlns:f="data:,f"


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:function>


<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.

David


Current Thread
Keywords