XSL - 有没有办法检查值的前3个字母,如果是真的,那么这样做吗?

时间:2016-12-10 00:47:34

标签: xslt-1.0

我是XSL的新手,并阅读了一些有关它如何工作的教程。我已经读过这个:Is there an "elegant" way to test that an attribute value starts with a letter?这基本上就是我想要的但是当我尝试时它不起作用。这样做的目的是,如果@extention.name的值为前两个字母为" 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>

1 个答案:

答案 0 :(得分:1)

  

这个的目的是@extention.name的值是否为前2   字母为&#34; MM&#34;,我希望它显示@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不同。