Comment implémenter l’instruction if-else dans XSLT?

J’essaie d’implémenter une instruction if -else dans XSLT mais mon code n’est pas analysé. Quelqu’un a-t-il une idée?

  date:   $IDAppendedDate"> 

mooooooooooooo

dooooooooooooo

Vous devez le réimplémenter en utilisant la :

    

mooooooooooooo

dooooooooooooo

Si la déclaration est utilisée pour vérifier une seule condition rapidement. Lorsque vous avez plusieurs options, utilisez comme illustré ci-dessous:

    

mooooooooooooo

dooooooooooooo

En outre, vous pouvez utiliser plusieurs balises pour exprimer les modèles If .. Else If ou Switch , comme illustré ci-dessous:

    

mooooooooooooo

booooooooooooo

dooooooooooooo

L’exemple précédent serait équivalent au pseudocode ci-dessous:

  if ($CreatedDate > $IDAppendedDate) { output: 

mooooooooooooo

} else if ($CreatedDate = $IDAppendedDate) { output:

booooooooooooo

} else { output:

dooooooooooooo

}

Si je peux faire quelques suggestions (deux ans plus tard, mais j’espère que cela sera utile aux futurs lecteurs) :

  • h2 élément commun h2 .
  • Comptez le texte ooooooooooooo commun.
  • Soyez conscient de la nouvelle construction de XPath 2.0 if/then/else si vous utilisez XSLT 2.0.

Solution XSLT 1.0 (fonctionne également avec XSLT 2.0)

 

m d ooooooooooooo

Solution XSLT 2.0

 

ooooooooooooo

L’approche la plus simple consiste à effectuer un deuxième test if mais avec la condition inversée. Cette technique est plus courte, plus facile pour les yeux et plus facile à obtenir qu’un bloc nested:

   date:   

mooooooooooooo

dooooooooooooo

Voici un exemple concret de la technique utilisée dans la feuille de style d’un site Web du gouvernement: http://w1.weather.gov/xml/current_obs/latest_ob.xsl