Le 14/06/2011 06:47, JS Rawat a écrit :
Hi Everybody,
Have anyone any idea about the below problem. I want + sign between two
RefArray (RefArray[11] + RefArray[12]) but not in the last (RefArray[12]+
RefArray[13]+ should be RefArray[12]+ RefArray[13]).
Input
<link class="bibcit" rid="FileName_bib11">11–13</link>
XSLT
<xsl:template match="link">
<xsl:choose>
<xsl:when test="@class='bibcit'">
<xsl:variable name="bibtext" select="."/>
<xsl:choose>
<xsl:when test="contains($bibtext, '–') and
substring-before($bibtext,'–') castable as xs:integer">
<xsl:variable name="start"
select="xs:integer(substring-before($bibtext,'–'))"/>
<xsl:variable name="end"
select="xs:integer(substring-after($bibtext,'–'))"/>
<a class="bibcit" href="references.htm#{substring-after(@rid,'_')}"
onmouseout="startTimeout()">
<xsl:attribute name="onmouseover">refpopup('REF',<xsl:value-of select="for $i in $start to $end
return concat('RefArray[',$i,']+')"/>)</xsl:attribute><xsl:apply-templates/></a>
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:template>
OUTPUT
<a class="bibcit" href="references.htm#bib11" onmouseout="startTimeout()"
onmouseover="refpopup('REF',RefArray[11]+ RefArray[12]+ RefArray[13]+)">11–13</a>
Desired OUTPUT
<a class="bibcit" href="references.htm#bib11" onmouseout="startTimeout()"
onmouseover="refpopup('REF',RefArray[11]+ RefArray[12]+ RefArray[13])">11–13</a>
Hi
Another (better?) answer:
<xsl:value-of select="string-join(for $i in $start to $end return
concat('RefArray[',$i,']'), '+')"/>
string-join() does exactly what you want : add a separator between strings.
You could also use <xsl:text> for your text values. Doing that allows
you to (auto-)indent your text, it's a lot easier to read:
<a class="bibcit" href="references.htm#{substring-after(@rid,'_')}"
onmouseout="startTimeout()">
<xsl:attribute name="onmouseover">
<xsl:text>refpopup('REF',</xsl:text>
<!--<xsl:value-of select="for $i in $start to $end return
concat('RefArray[',$i,']+')"/>-->
<xsl:value-of select="string-join(for $i in $start to $end return
concat('RefArray[',$i,']'), '+')"/>
<xsl:text>)</xsl:text>
</xsl:attribute>
<xsl:apply-templates/>
</a>
--
Regards,
Olivier Jeulin
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--