Re: [xml-dev] Xsl:when - Can I pass Conditions at runtime?

From
Andrew Welch <>
To
"" <>
Date
2007-03-01T10:06:20Z
ID
<>
Thread
Re: [xml-dev] Xsl:when - Can I pass Conditions at runtime?
(I didn't spot this was xml-dev and originally replied to the sender
only - why does xml-dev default to the sender and not to the list?
Its really annoying... surely its best to have all responses in the
archives...)

On 3/1/07,  <> wrote:
>
>
> Hi All,
>    I would like to have a XSLT - which selects some nodes based on
> condition passed from external system.
>
> <xsl:param name="condition"/>
> <xsl:param name="value"/>
> ...
> ...
> <xsl:template match="/A/B">
>        <xsl:variable name="cond" select="$condition"/>
>        <xsl:variable name="val" select="$value"/>
>        <xsl:choose>
>           <xsl:when test="$cond = $value">
>           </xsl:when>
>        <xsl:choose>
> </xsl:template>
>
>     I tried this, by passing
>     Transformer.setParameter("condition", "nameOfPerson");
>     Transformer.setParameter("value", "Sion");
>
> But it seem NOT as WORKING.
> Any corrections?

You are checking whether the string "nameOfPerson" is equal to the
string "Sion", whereas you really want to check if the element with
that name has a string value equal to $value, eg:

<xsl:when test="*[local-name() = $condition] = $cond">