xsl-list
[Top] [All Lists]

Re: [xsl] Is it possible to set the mode dynamically?

2020-01-07 05:01:23
Am 07.01.2020 um 11:51 schrieb rus tle 
profrustyleafiii(_at_)yahoo(_dot_)co(_dot_)uk:
Is it possible to set the mode dynamically?

The use case:

1. Setting a variable to a file name

<xsl:variablename="PayloadName"select="/POM/Netflix/@payload"/>

2. Using that variable to load the file dynamically into another variable

<xsl:variablename="payload"select="document(concat($PayloadName,
'.xml'))/payload”/>

3. Calling a template and passing the file name as as a param to be
used in that called template as the mode.

<xsl:call-templatename="create-html-tables">
<xsl:with-paramname="PayloadName"select="$PayloadName”/>
</xsl:call-template>

<xsl:templatename="create-html-tables">
<xsl:paramname=“PayloadName"/>
<xsl:apply-templatesselect="$pom//Event"mode=“$payloadName”/>
</xsl:template>

Is that a possibility in anyway shape or form…? Otherwise I am
thinking the only alternative would be to use a choose and then
hardcode the mode - which works, but just wondering if there was a
cleaner way?

<xsl:choose>
<xsl:whentest="$PayloadName = 'pivot-table-payload'">
<xsl:apply-templatesselect="$pom//Event"mode="pivot-table"/>
    </xsl:when>
<xsl:otherwise>
<xsl:apply-templatesselect="$pom//Event"mode="default"/>
</xsl:otherwise>
</xsl:choose>

Many thanks,

Rusty


Using a shadow attribute in XSLT 3 it might work:
https://www.w3.org/TR/xslt-30/#shadow-attributes


The variable/param would need to be global and static.


Additionally there is fn:transform to run on the fly generated XSLT.
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>