2011-05-24 5 views
0

J'ai un XML et XSLT. Je veux utiliser la condition if pour vérifier si un élément est 0, si c'est le cas, cachez-le et n'affiche rien. Si 0 est trouvé, affichez simplement une cellule vide.XSLT Si condition Aide

Voici le concept de base:

XML

<Sheet1> 
    <Build>0</Build> 
    <Item>X</Item> 
    <T1>0:06:00</T1> 
    <T2>0:14:15</T2> 
    <T3>0:07:22</T3> 
</Sheet1> 

XSLT

<table border="1"> 
    <tr bgcolor="#dccdc"> 
     <th align="center">Build</th> 
     <th align="center">Item</th> 
     <th align="center">T1</th> 
     <th align="center">T2</th> 
     <th align="center">T3</th> 
    </tr> 

    <xsl:for-each select="Sheet1"> 
     <tr> 
      <td bgcolor="#F2F5A9"> 
       <xsl:value-of select="Build" /> 
      </td> 
      <td bgcolor="#F2F5A9"> 
       <xsl:value-of select="Item" /> 
      </td> 
      <td bgcolor="#F2F5A9"> 
       <xsl:value-of select="T1" /> 
      </td> 
      <td bgcolor="#F2F5A9"> 
       <xsl:value-of select="T2" /> 
      </td> 
      <td bgcolor="#F2F5A9"> 
       <xsl:value-of select="T3" /> 
      </td> 
     </tr> 
    </xsl:for-each> 
</table> 

Ce que je veux faire est quand Construire élément = 0 je le veux pour imprimer rien, donc je essayé de mettre un xsl: si autour de l'élément dans le XSLT:

<xsl:if test="Build!='0'"> 
    <td bgcolor="#F2F5A9"> 
     <xsl:value-of select="Build" /> 
    </td> 
</xsl:if> 

mais cela ne semble pas fonctionner, j'obtiens un fichier de sortie vide.

des idées?

+0

'Item' est pas bien fermée. –

+0

corrigé-typo – KP65

Répondre

2

solution la plus simple consiste à écrire

<td bgcolor="#F2F5A9"> 
     <xsl:value-of select="Build[. != 0]" /> 
    </td> 
1

Une approche correcte est aussi (fragment):

<td bgcolor="#F2F5A9"> 
    <xsl:if test="Build[text()!='0']"> 
     <xsl:value-of select="Build" /> 
    </xsl:if> 
    </td> 
+0

En fait, je veux toujours la ligne à prendre, je veux juste voir une cellule vide plutôt que 0 dans la cellule si vous savez ce que signifie. – KP65

+0

ok, j'ai changé pour afficher une cellule vide. @ Michael-Kay fragment devrait bien fonctionner aussi bien. Quel est le problème alors? –

+0

merci - travaillé (à la fois fait) – KP65