Forum Programmation.web Problème avec les tests xslt...

Posté par  .
Étiquettes : aucune
0
15
sept.
2004
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"?>



<cod_civ>1</cod_civ><lib_civ>Monsieur</lib_civ>
<cod_civ>2</cod_civ><lib_civ>Mademoiselle</lib_civ>
<cod_civ>3</cod_civ><lib_civ>Madame</lib_civ>

<cod_civ>1</cod_civ>
(...)




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 :


<option selected value="1">Monsieur
Mademoiselle
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">
Titre : <xsl:apply-templates select="civilites" />
</xsl:template>

<xsl:template match="civilites">

<xsl:for-each select="civ">
<xsl:choose>
<xsl:when test="/ecran/agent/@cod_civ=./@cod_civ">

<xsl:value-of select="lib_civ" /> COUCOU

</xsl:when>
<xsl:otherwise>

<xsl:value-of select="lib_civ" />

</xsl:otherwise>
</xsl:choose>
</xsl:for-each>

</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 !
  • # Mille pardons

    Posté par  . Évalué à 2.

    pour ce message illisible (templeet n'a pas aimé mes balises xml...)
    Si un modéro pouvait virer ce message inutile et illisible, je lui en serais éternellement reconnaissant car :
    1) j'ai apris à lire depuis...
    2) Découlant du 1), j'ai trouvé la solution à mon problème
    3) Il n'est plus utile du coup d'avoir cet immondice affiché ci-dessus et sur la page d'accueil des forums.

    Encore une fois, mille pardons pour le dérangement !
    • [^] # Re: Mille pardons

      Posté par  (site web personnel) . Évalué à 1.

      A toutes fins utiles, je me rappelle avoir fait un truc dans le genre, en utilisant une commande XSLT qui ajoutait un attribut à la balise .
      Voir du coté de xsl:element et xsl:attribute, je crois.
      Mais c'est vieux tout ça...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.