URL: https://linuxfr.org/forums/programmationweb/posts/probl%C3%A8me-avec-les-tests-xslt Title: Problème avec les tests xslt... Authors: Gyro Gearllose Date: 2004年09月15日T11:35:17+02:00 Tags: Score: 0 Bonjour à vous, ô maîtres incontestés du xml et des transformations xsl ! Je suis confronté au problème suivant : J'ai un fichier xml qui a la structure suivante : <?xml version="1.0" encoding="ISO-8859-1"?> £spaces£ £/spaces£ £spaces£ £/spaces£ £spaces£ £/spaces£<cod_civ>1</cod_civ><lib_civ>Monsieur</lib_civ> £spaces£ £/spaces£<cod_civ>2</cod_civ><lib_civ>Mademoiselle</lib_civ> £spaces£ £/spaces£<cod_civ>3</cod_civ><lib_civ>Madame</lib_civ> £spaces£ £/spaces£ £spaces£ £/spaces£<cod_civ>1</cod_civ> (...) £spaces£ £/spaces£ Je voudrais transformer (à l'aide d'une feuille de style xslt) la valeur agent/cod_civ par un select de fomulaire html codé exactement comme suit : £spaces£ £/spaces£<option selected value="1">Monsieur £spaces£ £/spaces£Mademoiselle £spaces£ £/spaces£Madame Et je dois bien dire que j'en suis incapable. Ce qui me pose problème, c'est le "selected" sur l'une des options. J'ai pu lire par-ci par là qu'il fallait que j'utilise quelque chose dans ce genre : <xsl:template match="agent"> £spaces£ £/spaces£Titre : <xsl:apply-templates select="civilites" /> </xsl:template> <xsl:template match="civilites"> £spaces£ £/spaces£ £spaces£ £/spaces£<xsl:for-each select="civ"> £spaces£ £/spaces£<xsl:choose> £spaces£ £/spaces£<xsl:when test="/ecran/agent/@cod_civ=./@cod_civ"> £spaces£ £/spaces£ £spaces£ £/spaces£<xsl:value-of select="lib_civ" /> COUCOU £spaces£ £/spaces£ £spaces£ £/spaces£</xsl:when> £spaces£ £/spaces£<xsl:otherwise> £spaces£ £/spaces£ £spaces£ £/spaces£<xsl:value-of select="lib_civ" /> £spaces£ £/spaces£ £spaces£ £/spaces£</xsl:otherwise> £spaces£ £/spaces£</xsl:choose> £spaces£ £/spaces£</xsl:for-each> £spaces£ £/spaces£ </xsl:template> Mais quelle que soit la syntaxe utilisée dans le xsl:when test="XXX", le test effectif n'est pas réalisé. J'ai essayé tout ce qui me passait par la tête : les opérateurs =, != ; la fonction contains(), bref, rien n'y fait, je ne sais pas comment résoudre mon problème. A toute fins utiles, j'utilise le moteur de php pour parser le xml avec le xsl, et j'ai : - libxml-1.8.17 - libxml2-2.6.9 - expat-1.95.7 - php-4.3.4 d'installé. Je pense que ces infos sont suffisantes pour cerner mon problème. Merci à ceux qui m'aideront à comprendre ce foutu xsl !