XSL检查整数

时间:2010-10-25 14:48:47

标签: xslt

如何检查XSL中的整数值?我正在使用1.0版

这是我尝试过的,但它不起作用:

<xsl:variable name="ShowEmailEventId"
     select="com.zoniac.emailevent.NewEmailEventBean/emailEventIdString"/>
<xsl:if test="$ShowEmailEventId !=48">
    <table align="center"
           width="96%"
           border="1"
           style="border-color:#2E73AD;border-collapse:collapse"
           cellspacing="0"
           cellpadding="10">
        <tr>
            <td width="10%"
                style="border-color:#2E73AD;color: black; font: 11px verdana;padding:2px"
                align="left"
                valign="top">
                <b>S.No</b>
            </td>
        </tr>
    </table>
</xsl:if>

2 个答案:

答案 0 :(得分:4)

这可能是最短的表达式,返回true() iff $ x可以用作整数:

只需使用

floor($x) = $x

完整测试

<xsl:if test="floor($x) = $x">
 <!-- $x is an integer -->
</xsl:if>

<xsl:when test="floor($x) = $x">
 <!-- $x is an integer -->
</xsl:when>

someXPathExpression[floor($x) = $x]

答案 1 :(得分:3)

检查值nameofint是否为int ...(您显然想要更改if条件的内部。

<xsl:template match="CheckInt">
   <xsl:if test="not(string(.) castable as xs:integer)">
    <xsl:text>NOT AN INT: </xsl:text>
    <xsl:value-of select="."/>
  </xsl:if>
 </xsl:template>