IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

Mettre la valeur d'un tag en majuscule


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Par défaut Mettre la valeur d'un tag en majuscule
    Bonjour,

    J'ai un CDATA que je voudrais mettre en majuscule ! Est-ce possible ? Comment ?

    Voici le code xml correspondant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <NOM>
    <![CDATA[ Les Châtaigniers
    ]]>
    Voilà, question simple, j'espère réponse simple également !!??
    J'ai pensé à un translate du gerne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:value-of select="translate NOM,abcdefghijklmnopqrstuvwxyz,ABCDEFGHIJKLMNOPQRDTUVWXYZ°" />
    Mais bien entendu ça ne fonctionne pas
    J'ai cru comprendre qu'il manquait des " pour indiquer à la fonction translate(,,) qu'il y avait des string, si j'en mets, ça termine le select et donc rien ne fonctionne. Peut-être y-a-t'il un moyen de mettre des " d'une autre manière, mais je l'ignore
    Je vous remercie d'avance de votre aide.

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Par défaut
    peux tu envoyer le template complet qui contient ce bout de code? (si c'est pas gros!)

    sinon les parenthèses autour des paramètres de translate ne sont pas visibles, pb d'affichage?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Par défaut
    Désolé pour le retard !

    Voici donc le code du template :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    <xsl:key name="tri-par-commune" match="LEI/Resultat/sit_liste" use="ADRPROD_LIBELLE_COMMUNE"/>
    <xsl:template match="/">
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <title>Untitled Document</title>
    <style type="text/css">
    <xsl:comment>
    .Style1 {
    	font-family: Arial;
    	font-size: medium;
    	font-weight: bold;
    }
    .Style2 {
    	font-family: Arial;
    	font-size: small;
    }
    </xsl:comment>
    </style>
    </head>
     
    <body>
    <xsl:for-each select="LEI/Resultat/sit_liste[count(. | key('tri-par-commune', ADRPROD_LIBELLE_COMMUNE)[1]) = 1]">
    	<xsl:sort select="ADRPROD_LIBELLE_COMMUNE"/>
    	<br />
    	<span class="Style1"><xsl:value-of select="ADRPROD_LIBELLE_COMMUNE" /></span>
    	<br />
    	<br />
    	<xsl:for-each select="key('tri-par-commune',ADRPROD_LIBELLE_COMMUNE)">
     
    		<table width="100%" border="0">
              <tr>
                <td width="27%">
    			  <span class="Style2"><xsl:value-of select="NOM" />
    			  <xsl:for-each select="CRITERES/Crit">
    			  	<xsl:choose>
    			  		<xsl:when test="@CLEF_MODA = 30000069">
    						<xsl:text> *</xsl:text>
    					</xsl:when>
    					<xsl:when test="@CLEF_MODA = 30000070">
    						<xsl:text> **</xsl:text>
    					</xsl:when>
    					<xsl:when test="@CLEF_MODA = 30000071">
    						<xsl:text> ***</xsl:text>
    					</xsl:when>
    					<xsl:when test="@CLEF_MODA = 30000072">
    						<xsl:text> ****</xsl:text>
    					</xsl:when>
    					<xsl:when test="@CLEF_MODA = 30000070">
    						<xsl:text> **</xsl:text>
    					</xsl:when>
    					<xsl:when test="@CLEF_MODA = 30000074">
    						<xsl:text> (classement en cours)</xsl:text>
    					</xsl:when>
    					<xsl:when test="@CLEF_MODA = 30000349">
    						<xsl:text> (Tourisme)</xsl:text>
    					</xsl:when>
    				</xsl:choose>
    			</xsl:for-each>
    			  <br />
    			  <xsl:value-of select="ADRPROD_NUM_VOIE" />
    			  <xsl:text> </xsl:text>
    			  <xsl:value-of select="ADRPROD_LIB_VOIE" />
    			  <br />
    			  <xsl:if test="ADRPROD_TEL">
    			    <xsl:text>Tél. : </xsl:text><xsl:value-of select="ADRPROD_TEL" /><br />
    		      </xsl:if>
    			  </span></td>
                <td width="34%">
    			<xsl:for-each select="CRITERES/Crit">
    				<xsl:if test="@CLEF_CRITERE = 30000339">
    					<span class="Style2"><xsl:text>Capacité d'accueil :</xsl:text><br />
    					<xsl:value-of select="." />
    					<xsl:text> chambres.</xsl:text></span>
    				</xsl:if>
    			</xsl:for-each>			</td>
                <td width="39%">
    			<xsl:for-each select="CRITERES/Crit">
    				<xsl:if test="@CLEF_CRITERE = 30000279">
    					<xsl:element name="img">
    					<xsl:attribute name="src"><xsl:value-of select="normalize-space(.)"/></xsl:attribute>
    					<xsl:attribute name="width">150</xsl:attribute>
    					<xsl:attribute name="height">150</xsl:attribute>
    					</xsl:element>
    				</xsl:if>
    			</xsl:for-each>			</td>
              </tr>
            </table>
    	</xsl:for-each>
    	<hr />
    </xsl:for-each>
    </body>
    </html>
     
    </xsl:template>
    J'espère que la solution est aisée.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Par défaut
    J'ai trouvé une solution via le css :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    .Style2 {
    	font-family: Arial;
    	font-size: small;
    	text-transform: uppercase;
    }
    Que j'utilise à l'endroit voulu.
    J'imagine que ce n'est pas vraiment une solution qu'on peut qualifier d'élégante, mais ça fonctionne très bien !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/04/2007, 16h52
  2. [XSL] première apparition de la valeur d'un tag
    Par Milouse dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 12/07/2005, 11h17
  3. Mettre la valeur d'une table dans une CString
    Par Lucier dans le forum MFC
    Réponses: 29
    Dernier message: 26/11/2004, 16h04
  4. Mettre la valeur d'un paramètre dans un champs
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/10/2004, 16h08
  5. Mettre la première lettre des mots en majuscule
    Par seb.49 dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2003, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo