我是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>
答案 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>
为此,您必须处于引用属性的上下文中。父元素。
另请注意,extention
与extension
不同。