查找最后一个句点后的值

时间:2014-05-21 15:05:11

标签: xslt

我的XML中包含以下案例。

<item num="1.0.1"/>
<item num="1.0.">

我想捕获第一个案例,因为在第二个.之后有一个数字。

我使用以下语句进行检查,但两种情况都是如此。

    <xsl:template name="orderitem" match="item">

<xsl:choose>
    <xsl:when test="not(fn:contains(substring-after(substring-after(./@num,'.'),'.'),NaN))">
    <xsl:apply-templates/>
    </xsl:when>
    <xsl:otherwise>
       <li class="item">
                    <xsl:apply-templates/>
                </li>
    </xsl:otherwise>
</xsl:choose>



    </xsl:template>

请让我知道如何区分这两者。

由于

1 个答案:

答案 0 :(得分:0)

使用XSLT 2,您可以使用简单的正则表达式

<xsl:when test="matches(@num, "^\d+\.\d+\.\d+$")">

这将匹配由一个点分隔的3组1个或更多数字。