[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Nodeset problems (called RTF variable before)
Hello Joerg
I think you have to rethink your problem. Well, I can't come up with another solution, which will be good :( I am not very experienced using XSL, so I probably think in a way that is counterproductive to what I want. I will try to scetch the problem, and if anyone can come up with a better solution (broad details are enough, I think), I am all eager trying that out. (I might be a little long in explaining) I have a project which works, but I want to rework the solution. Current solution is something like: .. <td> <xsl:choose> <xsl:when test="$Cond_One='This' and $Cond_two='Us'"> <a href="FileA.asp?Param={$Param}" title="{$Language/This}"> <b><xsl:value-of select="$Language/A"/></b> </a> <a href="FileA.asp?Param={$Param}" title="{$Language/This}"> <img src="concat($ImageLocation, 'Something.gif')" width="15" height="9" border="0"/> </a> </xsl:when> <xsl:when test="$Cond_One='This' and $Cond_two='Them'"> <a href="FileA.asp?Param={$Param}" title="{$Language/That}"> <b><xsl:value-of select="$Language/A"/></b> </a> <a href="FileA.asp?Param={$Param}" title="{$Language/That}"> <img src="concat($ImageLocation, 'Someother.gif')" width="15" height="9" border="0"/> </a> </xsl:when> <xsl:otherwise> <a href="FileA.asp?Param={$Param}" title="{$Language/This}"> <b><xsl:value-of select="$Language/A"/></b> </a> <img src="concat($ImageLocation, 'transparent.gif')" width="15" height="9"/> </xsl:otherwise> </xsl:choose> </td><td> <xsl:choose> <xsl:when test="$Cond_One='That' and $Cond_two='Us'"> .. </xsl:choose> </td><td> .. (Lots more) So, I send two parameters to the stylesheet - Cond_One and Cond_two. In all but one of the <xsl:choose> the default (<xsl:otherwise>) condition will be made (depending wholly on Cond_One) - the other one will, depending on Cond_two have either one or the other <xsl:when> expression parsed. As this is very verbose, and because I now have to output it differently depending on a newly introduced third parameter (meaning twise as much code in the current solution), I wanted to put different strings in the afforementioned nodeset variable and then calling a template which have a parameter (Number - for example): <xsl:template name="Output"> <xsl:param name="Numbertest" select="Number"/> <xsl:for-each select="$test2"> <xsl:if test="$test2[pos()]!=$Numbertest"> <a href="{concat(current()/file, '?Param={$Param}')}" title="{$Language/This}"> <b><xsl:value-of select="Current()/name"/></b> </a> <img src="concat($ImageLocation, 'transparent.gif')" width="15" height="9"/> </xsl:if> </xsl:for-each> </xsl:template> Where the <xsl:variable> test2 contains rows of <node><name>..</name><file>..</file></node> in the right order. No problem with the <file> part, but the <name> must have the localised language, meaning I have to have it as an input from the Language file (-> $Language variable). (I am not totally sure of the syntax of the concationation in the called template above). If there is another way of doing something like this - cutting some pages of code into just 20 lines, I will be happy if such would be shared with me.
_________________________________________________________________ Broadband??Dial-up? Get reliable MSN Internet Access. http://resourcecenter.msn.com/access/plans/default.asp XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|