2013-11-25 3 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 на подстроку. вот и все. –

Смежные вопросы