213 votes

XSLT si else comment puis-je mettre en œuvre?

Je suis en train de mettre en œuvre une instruction if else dans xslt mais mon code ne fonctionne tout simplement pas analyser, quelqu'un aurait-il des idées?

  <xsl:variable name="CreatedDate" select="@createDate"/>
            <xsl:variable name="IDAppendedDate" select="2012-01-01" />

             <b>date: <xsl:value-of select="$CreatedDate"/></b> 

             <xsl:if test="$CreatedDate > $IDAppendedDate">
               <h2> mooooooooooooo </h2>
            </xsl:if>
           <xsl:else>
              <h2> dooooooooooooo </h2>
            </xsl:else>

merci

395voto

px1mp Points 976

Vous avez ré-écrire à l'aide de <xsl:choose> balise:

       <xsl:choose>
         <xsl:when test="$CreatedDate > $IDAppendedDate">
           <h2> mooooooooooooo </h2>
         </xsl:when>
         <xsl:otherwise>
          <h2> dooooooooooooo </h2>
         </xsl:otherwise>
       </xsl:choose>

83voto

InfantPro'Aravind' Points 5728

Si l'instruction est utilisée pour vérifier une seule condition vite! Lorsque vous avez plusieurs options pour aller <xsl:choose> illustré avec la solution ci-dessous!

   <xsl:choose>
     <xsl:when test="$CreatedDate > $IDAppendedDate">
       <h2>mooooooooooooo</h2>
     </xsl:when>
     <xsl:otherwise>
      <h2>dooooooooooooo</h2>
     </xsl:otherwise>
   </xsl:choose>

Aussi <xsl:choose><xsl:when> combinaison jouer un rôle de If else.. illustré avec l'exemple ci-dessous!

   <xsl:choose>
     <xsl:when test="$CreatedDate > $IDAppendedDate">
       <h2>mooooooooooooo</h2>
     </xsl:when>
     <xsl:when test="$CreatedDate = $IDAppendedDate">
       <h2>booooooooooooo</h2>
     </xsl:when>
     <xsl:otherwise>
      <h2>dooooooooooooo</h2>
     </xsl:otherwise>
   </xsl:choose>

Ce code si je illustrent avec si d'autre condition, alors, il serait égal à:

   if ($CreatedDate > $IDAppendedDate)
   {
       output: <h2>mooooooooooooo</h2>
   }

   else if ($CreatedDate = $IDAppendedDate)
   {
       output: <h2>booooooooooooo</h2>
   }

   else
   {
       output: <h2>dooooooooooooo</h2>
   }

42voto

kjhughes Points 5581

Si je peux offrir quelques suggestions (deux ans plus tard, mais je l'espère, utile pour les futurs lecteurs):

  • Le facteur de la commune h2 élément.
  • Le facteur de la commune ooooooooooooo de texte.
  • Être au courant des nouvelles de XPath 2.0 if/then/else construire si à l'aide de XSLT 2.0.

XSLT 1.0 Solution (fonctionne aussi avec XSLT 2.0)

<h2>
  <xsl:choose>
    <xsl:when test="$CreatedDate > $IDAppendedDate">m</xsl:when>
    <xsl:otherwise>d</xsl:otherwise>
  </xsl:choose>
  ooooooooooooo
</h2>

XSLT 2.0 Solution

<h2>
   <xsl:value-of select="if ($CreatedDate > $IDAppendedDate) then 'm' else 'd'"/>
   ooooooooooooo
</h2>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X