Xsl

hello all
j'aimerai bien dans mon fichier xsl pouvoir recuperer le contenu d'un noeud xml l'evaluer et ecrire une strig en fonction du resultat dans un tableau html de quelle maniere je pourrai faire ca.
J'aimerai bien egalement changer le bgcolor d'une cellule en fonction de la valeur d'un noeud si quelqu'un a une source pour m'aider.

--
COIN!

9 réponses

  1. Contributeur
    Salut,
    Valeur ou nom du noeud?
    Bon suite après manger :o)
    0
    1. Contributeur
      la valeur
      <mon noeud>ma valeur</mon noeud>
      si ma valeur = x
      alors la bgcolor de la cellule est XXXXXx (RVB)
      et le contenu de la cellule est ...

      bon ap au fait ;-)
      0
      1. Contributeur
        Tu peux tester la valeur non?
        0
        1. Contributeur
          <xsl:if test="@value='x'">


          sans oublier de fermer la balise if après ;o)
          0
          1. Contributeur
            en fait la valeur contient true ou false je voudrai pouvoir mettre la couleur a rouge si c est faux et a bleu si c est vrai et mettre un petit texte selon les cas (nom du noeud)
            pour l'instant j'ai ca:
            <td><xsl:value-of select="MorningCheck/SMNP/comment"/></td>
            mais je n affiche que true ou false...il faudrai que je rende cela un peu plus dynamique en y integrant par exemple un peu de javascript
            j'ai essayé:
            function SetBackGround(texte)
            {
            if(texte=="TRUE")
            {
            return "00FF00"
            }
            else
            {
            return "FF0000"
            }
            }

            et dans le <body>
            <td bgcolor="SetBackGround('<xsl:value-of select="MorningCheck/SMNP/comment"/>" ')><xsl:value-of select="MorningCheck/SMNP/comment"/></td>

            mais il râle a cause des < > entre les ( )
            je suis pas un nexpert en javascript alors il y a peu etre un moyen de le faire autrement..ou de mieux l'ecrire...
            0
            1. Contributeur
              Tu veux faire le test en js? Je croyais que tu le voulais en xsl 8-) En js je n'y connais rien...
              0
              1. Contributeur
                pour pouvoir faire des modif des valeurs je ne voit pas comment faire
                ton truc la:
                <xsl:if test="@value='x'">

                il me permet ensuite d'ecrire une valeur ou une autre sur la page en fonction du resultat?
                0
                1. Contributeur
                  Bien sûr, c'est le but du xsl...

                  Regarde
                  
                  <?xml version="1.0" encoding="ISO-8859-2"?>
                  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
                  <xsl:output method="text" version="1.0" encoding="ISO-8859-2" indent="yes"/>
                  <xsl:param name="upperCase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ éè'"/>
                  <xsl:param name="lowerCase" select="'abcdefghijklmnopqrstuvwxyz_ee'"/>
                  <xsl:template match="listmedia">
                  case $1 in<xsl:for-each select="media"><xsl:sort select="@name"/><xsl:if test="@type='radio'">
                  <xsl:variable name="fname" select="translate(@name,$upperCase,$lowerCase)"/>
                  "<xsl:value-of select="$fname"/>") <xsl:choose>
                  <xsl:when test="flux/@type='ogg'">xmms <xsl:value-of select="flux[@type='ogg']/@adress"/></xsl:when>
                  <xsl:when test="flux/@type='m3u'">xmms <xsl:value-of select="flux[@type='m3u']/@adress"/></xsl:when>
                  <xsl:when test="flux/@type='real'">realplay <xsl:value-of select="flux[@type='real']/@adress"/></xsl:when>
                  <xsl:when test="flux/@type='ASX'">mplayer -afm acm -cache 5000 <xsl:value-of select="flux[@type='ASX']/@adress"/></xsl:when>
                  </xsl:choose>;;
                  </xsl:if>
                  </xsl:for-each>
                  *) echo "Vous devez entrez une radio parmi la liste suivante:"
                  <xsl:for-each select="media"><xsl:sort select="@name"/><xsl:if test="@type='radio'">
                  echo "<xsl:value-of select="translate(@name,$upperCase,$lowerCase)"/>"
                  </xsl:if></xsl:for-each>
                  esac
                  </xsl:template>
                  </xsl:stylesheet>
                  
                  


                  Selon le type de flux, je choisi quel player ajouté dans le fichier de sorti (ce n'est pas du html ici mais juste un script nunux mais on s'en fout...)
                  0
                  1. Contributeur
                    ok merci je vais voir ce que je peux faire avec ca deja...
                    0