Xml et Xsl ...

Signaler
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
-
Bonzour

ça fait un ptit moment que je me prend la tête et je suis sur que c'est pour pas grand chose alors je vais vous expliquer mon soucis

j'ai un fichier xml dont le corps est ainsi...

<root>
   
        <Row numero="1">
           <Text color="green">blabla</Text>
        </Row>
        <Row numero="2">
            <Column color="yellow">blabla2</Column>
            <Column color="white">blabla3</Column>
       </Row>
   

</root>

Pour afficher j'utilises donc ceci...

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
      <html>
         
                                <xsl:apply-templates/>
             

         
      </html>
    </xsl:template>
   
    <xsl:template match="/root/page">
                    <xsl:apply-templates select=\"Row\"/>
       

    </xsl:template>
   
    <xsl:template match="Row">
        <tr style="background-color:#000; text-align:center; color:#fff;">
            <xsl:apply-templates select="Text"/>
            <xsl:apply-templates select="Column"/>
        </tr>
    </xsl:template>
   
    <xsl:template match="Text">
        <td>
              <xsl:value-of select="."/>
        </td>
    </xsl:template>
   
    <xsl:template match="Column">
        <td>
              <xsl:value-of select="."/>
        </td>
    </xsl:template>
   
</xsl:stylesheet>

Je voudrais utiliser evidement les attributs des tags Text et Column comme style de la td contenant le textnode. Mais je trouve pas la syntaxe

j'ai trouvé ceci ...

                    <td>

                       
<!-- met en valeur par du rouge la croissance négative -->

                       
<xsl:if test="growth &lt; 0">

                            
<xsl:attribute name="style">

                                
<xsl:text>color:red</xsl:text>

                            
</xsl:attribute>

                       
</xsl:if>

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

                   
</td>

Mais ce n'est pas tout a fait ce que je cherche... j aimerais "calquer le style defini dans le parametre " dans le style de la td

Merciiiii

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

1 réponse

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
J'ai trouvé !!!

Voici un exemple...

<xsl:template match="Column">
        <td>
            <xsl:attribute name="style">
                <xsl:value-of select="concat('color:',@color,';')"/>;
            </xsl:attribute>
              <xsl:value-of select="."/>
        </td>
    </xsl:template>

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro