2010-10-25 3 views
1

Как проверить целочисленное значение в XSL? Я использую версию 1.0Проверка целостности XSL

Это то, что я пытался, но он не работает:

<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> 
+3

Проверьте, для чего? – Oded

+0

Чтобы определить, на какой вклад вы смотрите, и что вы хотите знать об этом? – LarsH

+0

Мне нужно получить два целочисленных значения. Если значения приходят, то он примет одно условие, иначе это не так. –

ответ

3

проверить, если значение nameofint является ква ... (вы, очевидно, будете хотеть изменить внутреннюю часть, если условия

<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> 
+0

Это XSLT 2.0 – 2010-10-25 15:05:38

+0

Итак? Я не вижу версию, указанную? – Nix

+0

Теперь я использую версию 1.0 –

3

Это, вероятно, самое короткое выражение, возвращая true() тогда и только тогда $ 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] 
+0

Этот метод floor() используется в XSL 1.0? –

+0

@AdalArasan: Да, это стандартная функция XPath 1.0, а XSLT 1.0 использует XPath 1.0. См .: http://www.w3.org/TR/xpath/#function-floor –