Aventure XML - Part4 (Problème de balise)

L'XML/XSL est un langage à balise tout comme l'HTML, mais là où l'HTML s'arrête à du texte pur, l'XSL permet de faire des boucles, des tests, etc... Arrêtons nous justement sur ces tests et plus particulièrement les tests de supériorité et d'infériorité...

Dans la plupart des langages, nous avons :

2 > 1
1 < 2

Mais le problème de l'XSL est que les signes < et > sont déjà utilisés par les balises... Ainsi on peut faire des tests avec > mais pas avec <
Ainsi on ce retrouve donc dans la situation absurde de pouvoir faire des tests de supériorité mais pas d'infériorité... L'astuce revient alors à faire des tests de non supériorité :-) .

Un petit exemple du parcours d'un fichier XML :

<xsl:for-each select="image [(position() >= $img_begin) and not (position() > $img_end)]">

Alors que la logique voudrait :

<xsl:for-each select="image [(position() >= $img_begin) and (position() < $img_end)]">

1 réactions

  • De Damien De Damien - 01/05/2005, 00:02 #1

    Il suffit de remplace les < par &lt; et personnellement histoire d'être cohérent, je remplace aussi les > par des &gt; mais ce n'est pas obligatoire.

Attribution - Partage dans les Mêmes Conditions 4.0 International