2010-10-25 6 views
1

Comment vérifier la valeur entière dans XSL? J'utilise la version 1.0XSL entier de contrôle

C'est ce que je l'ai essayé, mais il ne fonctionne pas:

<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

Vérifiez-le pour quoi? – Oded

+0

Pour en savoir plus, quel type de contribution envisagez-vous et que voulez-vous savoir à ce sujet? – LarsH

+0

Je dois obtenir deux valeurs entières. Si les valeurs viennent, alors il acceptera une condition sinon ce n'est pas le cas. –

Répondre

3

pour vérifier si une valeur nameofint est un int ... (vous allez évidemment vouloir changer l'intérieur de la condition 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> 
+0

Ceci est XSLT 2.0 –

+0

Alors? Je ne vois pas une version spécifiée? – Nix

+0

Maintenant, je suis utilisé la version 1.0 –

3

Ceci est probablement la plus courte expression, retour true() ssi x $ peut être utilisé comme un entier.

Il suffit d'utiliser:

floor($x) = $x 

Le test complet sera:

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

ou

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

ou

someXPathExpression[floor($x) = $x] 
+0

Est-ce que cette méthode floor() est utilisée dans XSL 1.0? –

+0

@AdalArasan: Oui, il s'agit d'une fonction XPath 1.0 standard et XSLT 1.0 utilise XPath 1.0. Voir: http://www.w3.org/TR/xpath/#function-floor –