J'essaye d'implémenter une instruction if -else dans XSLT mais mon code n'analyse tout simplement pas. Quelqu'un a-t-il une idée?
<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>
xml
xslt
if-statement
Froussard
la source
la source
Réponses:
Vous devez le réimplémenter en utilisant
<xsl:choose>
tag:la source
Si l'instruction est utilisée pour vérifier rapidement une seule condition. Lorsque vous avez plusieurs options, utilisez
<xsl:choose>
comme illustré ci-dessous:En outre, vous pouvez utiliser plusieurs
<xsl:when>
balises pour exprimerIf .. Else If
ou desSwitch
motifs, comme illustré ci-dessous:L'exemple précédent équivaudrait au pseudocode ci-dessous:
la source
if else
condition n'était qu'un exemple ou plutôt un pseudocode. Eh bien, je considère votre inquiétude et je l'ai édité ..Si je peux offrir quelques suggestions (deux ans plus tard mais j'espère utiles aux futurs lecteurs) :
h2
élément commun .ooooooooooooo
texte commun .if/then/else
construction XPath 2.0 si vous utilisez XSLT 2.0.Solution XSLT 1.0 (fonctionne également avec XSLT 2.0)
Solution XSLT 2.0
la source
L'approche la plus simple consiste à faire 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 imbriqué à choisir quand autrement:
Voici un exemple concret de la technique utilisée dans la feuille de style d'un site Web gouvernemental: http://w1.weather.gov/xml/current_obs/latest_ob.xsl
la source
if
test correspond au complément du premier rend toute modification ultérieure plus sujette à l'erreur.<xsl:choose>
serait beaucoup plus simple, sa signification beaucoup plus claire.Originaire de ce billet de blog . Nous pouvons réaliser if else en utilisant le code ci-dessous
Alors voici ce que j'ai fait
Ma sortie
la source