Xml et Xsl ...

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 5 mai 2008 à 15:27
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 - 5 mai 2008 à 16:15
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

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
5 mai 2008 à 16:15
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
0