|
Subject: Re: [xsl] XPath function for <xsl:apply-templates/>? From: Michael Kay <mike@xxxxxxxxxxxx> Date: Mon, 18 Nov 2013 15:47:55 +0000 |
It's not very difficult to add to your stylesheet:
<xsl:function name="f:apply-templates">
<xsl:param name="node" as="node()*/>
<xsl:apply-templates select="$node"/>
</xsl:function>
and if you define one such function for each declared mode, then in 3.0 you
can use dynamic function invocation to select a mode dynamically.
Michael Kay
Saxonica
On 18 Nov 2013, at 14:25, Christian Mahnke <cmahnke.sub@xxxxxxxxxxxxxx>
wrote:
> Hi,
> Ive noticed the problem with the dynamic mode setting as well. Maybe these
can be points for improvement in the next version of the XSLT specification:
> * dynamic mode
> * function like shortcut for apply-templetes
>
> Thanks,
> Christian
>
>
>
>
> Am 18.11.2013 um 15:19 schrieb David Carlisle <davidc@xxxxxxxxx>:
>
>> 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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] XPath function for <xsl:a, David Carlisle | Thread | Re: [xsl] XPath function for <xsl:a, Dimitre Novatchev |
| Re: [xsl] XPath function for <xsl:a, David Carlisle | Date | [xsl] xsl:package/xsl:expose?, Tony Graham |
| Month |