XSL-是否有一种方法可以检查值的前3个字母,如果为true,请执行此操作



我是XSL的新手,并且已经阅读了一些有关其工作方式的教程。我已经读过:是否有"优雅"测试属性值以字母开头的方法?基本上,这是我想要的,但是当我尝试它时它不起作用。这样做的目的是,如果 @extention.name的值将前2个字母作为" mm",我希望它显示 @Extention.name。如果不是,我想显示 @Extention.length。我确定这很简单,但无论如何都是我所拥有的。

            </td>
            <xsl:if test="@extension.name not contains('MM', substring(@value,1,1))" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
              <xsl:value-of select="@extension.name" />
            </xsl:if>
            <td style="text-align:center;">
            <xsl:value-of select="@extension.length" />
            </td>

目的是如果 @Extention.name的值有第一个2 字母为" mm",我希望它显示 @extention.name。如果不是,我想 显示 @Extention.length。

为此,您应该使用:

<xsl:choose>
    <xsl:when test="starts-with(@extension.name, 'MM')">
        <xsl:value-of select="@extension.name" />
    </xsl:when>
    <xsl:otherwise>
        <xsl:value-of select="@extension.length" />
    </xsl:otherwise>
</xsl:choose>

为此,您必须在引用属性的父元素的上下文中。


还请注意,extentionextension不同。

最新更新