我有一些名字,从1到13的数字开始:
<description>
</description>
<short>1EN-1</short>
</description>
<description>
<short>2EN-1</short>
</description>
依此类推
<description>
<short>13EN-1</short>
</description>
我需要能够提取第一个数字。
我使用了以下代码:
<xsl:when test="starts-with(description/short, '1')">1</xsl:when>
不幸的是,这个字符串返回1,描述/ short以1开头,以及以11,12和13开头。任何建议都会非常感激!
答案 0 :(得分:1)
在xsl:choose
匹配的第一个 when
测试将是使用的测试,因此将较长的前缀测试放在较短的测试之前:
<xsl:choose>
<xsl:when test="starts-with(description/short, '13')">...</xsl:when>
<xsl:when test="starts-with(description/short, '12')">...</xsl:when>
<!-- ... -->
<xsl:when test="starts-with(description/short, '2')">...</xsl:when>
<xsl:when test="starts-with(description/short, '1')">...</xsl:when>
</xsl:choose>