Re: [xsl] conditional replacement

Subject: Re: [xsl] conditional replacement
From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx>
Date: Tue, 13 Jan 2009 21:51:27 +0530
On Tue, Jan 13, 2009 at 5:52 PM, Ganesh Babu N <nbabuganesh@xxxxxxxxx> wrote:
> I have tried with the following expressions but I am not getting the result.
> <xsl:if test="document('ini.xml')//init/space = 1">
>        <xsl:variable name="space" select=" "/>
> </xsl:if>

You cannot use the above variable any further in the stylesheet. As
the scope of the variable is only within the enclosing xsl:if element.

Since you are using XSLT 2.0, I suggest you can use something like:

<xsl:variable name="space" select="if (document('ini.xml')//init/space
= 1) then ' ' else ''"/>

> <xsl:choose>
> <xsl:when test="document('ini.xml')//init/remove = 1">
>        <xsl:variable name="pat" select="string('.')"/>
> </xsl:when>
> <xsl:otherwise>
>        <xsl:variable name="pat" select="\.[^$]"/>
> </xsl:otherwise>
> <xsl:choose>

This variable declaration will not work either, for the same reason I
wrote above.

I suggest, please use:

<xsl:variable name="pat" select="if (document('ini.xml')//init/remove
= 1) then string('.') else \.[^$]"/>

PS: I haven't checked the correctness of regular expressions.

Mukul Gandhi

Current Thread