2013-11-25 68 views
1

的结果删除最后我有一个XML如下图所示XSLT - 从模板调用

<employee id="e001"> 
<sal month="jan"> 
<basic>5000</basic> 
<commission>3000</commission> 
<sal> 
<sal month="feb"> 
<basic>5000</basic> 
<commission>3500</commission> 
<sal> 
<employee> 

我想,如下所示将其转换为XML。

<emp id="e001" sal="5000-3000/5000-3500"></emp> 

我打电话模板如下图所示带参数的员工/ *

<xsl:template name="salCnsldtd"> 
    <xsl:param name="list" /> 
    <xsl:for-each select="$list"> 
     <xsl:value-of select="concat(basic,'-',commission,'/')" /> 
    </xsl:for-each> 
</xsl:template> 

我的模板调用后得到的结果如下。

<emp id="e001" sal="5000-3000/5000-3500/"></emp> 

如何从sal中删除最后一个斜杠(/)。请帮助我提供更好的解决方案或删除斜线。谢谢。

回答

1

尝试这种情况:

<xsl:template name="salCnsldtd"> 
    <xsl:param name="list" /> 
    <xsl:variable name="compensation"> 
    <xsl:for-each select="$list"> 
     <xsl:value-of select="concat('/',basic,'-',commission)" /> 
    </xsl:for-each> 
    </xsl:variable> 
    <xsl:value-of select="substr($compensation,2)"/> 
</xsl:template> 

我移动定界符“/”到每个元件的前,然后汽提掉在最终的字符串的第一个。

+0

非常感谢吉姆。有效。我使用xslt 1.0,所以我将substr改为substring。这就对了。 –