如何在XSLT中获取字符串的最后一个字符

时间:2013-12-17 18:37:35

标签: xml xslt

我有以下输入

<items>
    <item id="1" name="aaa" old_level="5,4,3,2,1" new_level="5,4,3,2,1,0"/>
    <item id="2" name="bbb" old_level="3,2,1" new_level="3,2,1"/>
    <item id="3" name="ccc" old_level="4,3,2" new_level="4,3,2"/>
</items>

我需要检查new_level的最后一个char是否为零。我怎么能用xslt做到这一点?

2 个答案:

答案 0 :(得分:6)

如果您有XSLT / XPath 2.0,您可以使用这样的XPath(或根据您的特定需求进行调整):

//item[ends-with(@new_level,'0')]

如果您只有XSLT / XPath 1.0,则可以执行以下操作:

<xsl:template match="item">
    <xsl:variable name="length" select="string-length(@new_level)"/>
    <xsl:if test="substring(@new_level,$length) = '0'">
        <!-- do something -->
    </xsl:if>
</xsl:template>

答案 1 :(得分:2)

使用XSLT 2.0很容易:<xsl:template match="item[tokenize(@new_level, ',')[last()] eq '0']">..</xsl:template>