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 :

balises <td></td> en xsl ne marche pas [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 97
    Par défaut balises <td></td> en xsl ne marche pas
    Bonjour,

    Je voulais remplacer le mot toto par des balises </td><td>,
    donc si quelqu'un peut me dire comment faire car je n'ai réussi
    voici mon code xsl
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:output 
      method="html"
      encoding="ISO-8859-1"
      doctype-public="-//W3C//DTD HTML 4.01//EN"
      doctype-system="http://www.w3.org/TR/html4/strict.dtd"
      indent="yes" />
    <xsl:template match="/">
    <table class="info_pro_thesaurus">
    	<tr>
    		<td>
    			<xsl:variable name="var1">0</xsl:variable>
    			<xsl:for-each select="PUBLICATION/THEMA">
    				<xsl:variable name= "title"><xsl:value-of select= "@label"/></xsl:variable>
    			<h3><xsl:value-of select="@label"/></h3>
    			<ul>
    				<xsl:for-each select="ARTICLE">
    					<xsl:variable name="numero" select="URL"/>
    					<li><a href="{$numero}"> <xsl:value-of select="TITRE"/>	</a></li>
    				</xsl:for-each>
    			</ul>
    				<xsl:if test="$title = 'Ecomanagement'">
    					<xsl:text>toto</xsl:text>
    				</xsl:if>
    				<xsl:if test="$title = 'Urbanisme'">
    					<xsl:text>toto</xsl:text>
    				</xsl:if>
    				<xsl:if test="$title = 'Transport'">
    					<xsl:text>toto</xsl:text>
    				</xsl:if>
     
    			</xsl:for-each>
    		</td>
    	</tr>
    </table>
    </xsl:template >
    </xsl:stylesheet>
    Merci
    Bonne journée

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Effectivement, en XSL il est impossible (à ma connaissance) de créer du XML invalide dans une sous-partie, même si le XML total résultant serait valide.

    Ecrire </td><td> n'est donc pas possible en XSLT, il faut penser ton code différemment afin de n'utiliser que des sous-parties contenant du XML valide.

    Ceci dit, ce n'est qu'une constatation personnelle, je n'ai rien lu allant spécifiquement dans ce sens donc s'il se trouve qu'il y'a un moyen de le faire, je serai aussi intéressé que toi de le connaître.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par Loceka Voir le message
    Effectivement, en XSL il est impossible (à ma connaissance) de créer du XML invalide dans une sous-partie, même si le XML total résultant serait valide.

    Ecrire </td><td> n'est donc pas possible en XSLT, il faut penser ton code différemment afin de n'utiliser que des sous-parties contenant du XML valide.

    Ceci dit, ce n'est qu'une constatation personnelle, je n'ai rien lu allant spécifiquement dans ce sens donc s'il se trouve qu'il y'a un moyen de le faire, je serai aussi intéressé que toi de le connaître.
    C'est en principe à ça que sert disable-output-escaping. Mais bon, tous les outils ne le gèrent pas bien.

    Dans le cas présent, la bonne méthode serait plutôt de déterminer quand on veut créer des balises <td> et </td>, ainsi que ce qu'on met à l'intérieur.
    Mais bon, dans le cas présent c'est pas forcément évident.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 97
    Par défaut
    Citation Envoyé par thelvin Voir le message
    C'est en principe à ça que sert disable-output-escaping. Mais bon, tous les outils ne le gèrent pas bien.

    Dans le cas présent, la bonne méthode serait plutôt de déterminer quand on veut créer des balises <td> et </td>, ainsi que ce qu'on met à l'intérieur.
    Mais bon, dans le cas présent c'est pas forcément évident.
    en fait l'idée en général est après chaque 4 THEMA(@label) je ferme le </td> et j'ouvre une autre<td>. Donc il me faut un compteur, mais comme je connais les nom de 4ème, 8ème THEMA c'est pour ça j'ai mis un if
    je résoudre d'abord le problème des <td> puis je m'occuper de compteur
    voilà !

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:for-each select="THEMA[@label][position() mod 4 = 1]">
      <td>
        <!-- Insérer le THEMA et tout ce qui le suit -->
      </td>
    </xsl:for-each>
    Mais bon, c'est pas super évident à faire, il faut bien le reconnaître.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 97
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:for-each select="THEMA[@label][position() mod 4 = 1]">
      <td>
        <!-- Insérer le THEMA et tout ce qui le suit -->
      </td>
    </xsl:for-each>
    Mais bon, c'est pas super évident à faire, il faut bien le reconnaître.
    Merci pour ce code, mais est ce que vous pouvez m'expliquer un peut ce code position() mod 4 = 1 ?
    mnt il m'affiche le 1ère, 4ème et 8ème et non les autres thèmes, moi je veux dans le premier <td>le 4 premier thema </td> <td> 5,6,7 et 8 ème THEMA</td> et ainsi de suite, chaque 4 THEMA dans un TD

    en fait, mon problématique est le suivant :

    fichier xml :
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <PUBLICATION REF="ENVIRONNEMENT MAGAZINE">
    <THEMA REF="EAU" label="Eau">
    <ARTICLE id="75232">
    <TITRE>bla bla bla</TITRE>
    <URL>lien</URL>
    </ARTICLE>
    <ARTICLE id="73604">
    <TITRE>bla bla bla/TITRE>
    <URL>lien</URL>
    </ARTICLE>
    <ARTICLE id="71009">
    <TITRE>bla bla bla</TITRE>
    <URL>lien</URL>
    </ARTICLE>
    </THEMA>
    <THEMA REF="DECHETS" label="Déchets">
    <ARTICLE id="76115">
    <TITRE>bla bla bla</TITRE>
    <URL>lien</URL>
    </ARTICLE>
    <ARTICLE id="76093">
    <TITRE>bla bla bla</TITRE>
    <URL>lien</URL>
    </ARTICLE>
    <ARTICLE id="76127">
    <TITRE>bla bla bla</TITRE>
    <URL>lien</URL>
    </ARTICLE>
    </THEMA>
    .........
    </PUBLICATION>
    je veux afficher les THEMA (groupe de 4, chaque 4 THEMA dans un td)dans des <td></td>

    Merci bcp

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

Discussions similaires

  1. code javascript ne marche pas balise script
    Par unmaxdemily dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/03/2009, 00h46
  2. [Mail] Marche pas avec balise
    Par Azharis dans le forum Langage
    Réponses: 6
    Dernier message: 07/11/2008, 10h42
  3. [HTML] la balise objet marche pas dans le *%?@ d'internet explorer
    Par goldor dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 15/05/2008, 09h12
  4. [XHTML] Title dans une balise select ne marche pas
    Par mcdelay dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 13/08/2007, 11h10
  5. Balise <PRE> marche pas dans un form
    Par chateau64 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 14/11/2005, 09h20

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