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 :

[XSLT]la structure conditionnelle.


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 130
    Points : 74
    Points
    74
    Par défaut [XSLT]la structure conditionnelle.
    Bonsoir, j'ai crée un page xml dont les données sont affichée sous forme de tableau, j'ai donc une collonne nommée type.
    Dans cette colonne je veut que si le contenu de la balise (du même nom : <type></type> ) contient "type" que le contenu s'affiche en gras, dans les autre cas, on l'affiche normalement.

    Mais comme je m'y attendais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="type=='type'">
    Ne marche pas et provoque une erreur, comment puis je proceder?

  2. #2
    Membre éprouvé
    Avatar de ridan
    Inscrit en
    Avril 2003
    Messages
    710
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2003
    Messages : 710
    Points : 1 126
    Points
    1 126
    Par défaut
    Salut,

    essaye plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:if test="type = 'type'">
    ++


  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 130
    Points : 74
    Points
    74
    Par défaut
    Mais ca va toujours retourner true! Je tente quand même.

    XSLT processing failed!

    Je confirmùe ca ne marche pas.

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    en XSLT, l'opérateur de comparaison d'égalité est = et non ==

    la comparaison à faire est donc bien type = 'type'...

    Si tu as une erreur au niveau du processeur XSLT, assure-toi de bien l'identifier et poste le code (XSLT) qui pose problème...

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    si j'ai bien compris tu dois faire ceci :


  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 130
    Points : 74
    Points
    74
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:if test="type"><b></xsl:if>
    <xsl:value-of select="type"/>
    <xsl:if test="type"></b></xsl:if>
    Même chose.

    Comment puis identifier mon processeur XSLT?
    Voici le code que j'ai (celui qui marche) :
    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
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    	<xsl:output method="html"/>
    	<xsl:template match="/">
    		<html>
    			<head><title>Liste des divinitées et autre dans la mythologie grecque.</title></head>
    			<body>
    				<table border="1" cellspacing="0" cellpadding="3">
    					<tr>
    						<td><b>Nom</b></td>
    						<td><b>Type</b></td>
    						<td><b>Domaine</b></td>
    						<td><b>Signification</b></td>
    						<td><b>Pere</b></td>
    						<td><b>Mere</b></td>
    						<td><b>Etoile</b></td>
    					</tr>
    					<xsl:apply-templates/>
    				</table>
    			</body>
    		</html>
    	</xsl:template>
    	<xsl:template match="*">
    		<xsl:apply-templates/>
    	</xsl:template>
    	<xsl:template match="personne">
    		<tr>
    			<td>
    				<xsl:value-of select="nom"/>
    			</td>
    			<td>
    				<xsl:value-of select="type"/>
    			</td>
    			<td>
    				<xsl:value-of select="domaine"/>
    			</td>
    			<td><em>
    				<xsl:value-of select="signification"/>
    			</em></td>
    			<td>
    				<xsl:value-of select="pere"/>
    			</td>
    			<td>
    				<xsl:value-of select="mere"/>
    			</td>
    			<td>
    				<xsl:value-of select="etoile"/>
    			</td>
    		</tr>
    	</xsl:template>
    </xsl:stylesheet>

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    pour bien comprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    que si le contenu de la balise (du même nom : <type></type> ) contient "type"
    tu veux dire que si le contenu "texte" de ton tag "type" contient la chaine "type"?

    pour toi ce sera pas du "if" mais du "choose" car tu as un "else"!
    et pour ton test tu peux utiliser la fonction "contains" d'xsl.

    donc ça rassemble a ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <xsl:choose>
    <xsl:when test="contains(type,'type')">
    gras</xsl:when>
    <xsl:otherwise>
    pas gras
    </xsl:otherwise>
    <xsl:choose><
    voila.

  8. #8
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Citation Envoyé par Extra-Nitro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:if test="type"><b></xsl:if>
    <xsl:value-of select="type"/>
    <xsl:if test="type"></b></xsl:if>
    Même chose.
    Ce code est incorrect, ce n'est pas du XML bien formé (problème d'imbrication des balises, la balise fermante du premier xsl:if apparaît avant celle du b), et le test ne portera que sur la présence d'un élément type, pas sur son contenu ; un code correct serait celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:choose>
      <xsl:when test="type = 'type'">
        <b><xsl:value-of select="type"/></b>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="type"/>
      </xsl:otherwise>
    </xsl:choose>

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 130
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par GrandFather
    Bonjour,


    Ce code est incorrect
    Ce quote avec test="type" c'est valal qui me la proposé!
    Merci du conseil pour xsl:choose je vais tenter

  10. #10
    Membre actif
    Avatar de Fildz
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 161
    Points : 272
    Points
    272
    Par défaut
    GrandFather doit marcher, donne l'erreur renvoyée sinon.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 130
    Points : 74
    Points
    74
    Par défaut
    ca marche a merveille problême resolu.

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

Discussions similaires

  1. IF ( Structure conditionnelle ) MYSQL
    Par Eric45 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 26/08/2013, 18h59
  2. [Débutant][XSLT] Passage structure plane à arborescente
    Par dj DMSR dans le forum XSL/XSLT/XPATH
    Réponses: 18
    Dernier message: 27/09/2007, 13h51
  3. [VBA-E]Structure conditionnelle sur plusieurs variables
    Par rodrigue62 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/07/2007, 14h30
  4. structure conditionnelle dans la clause where
    Par liberty74 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2007, 23h18
  5. [Language][Compilateur]Objets et structures conditionnelles
    Par goran kajfes dans le forum Langage
    Réponses: 5
    Dernier message: 30/11/2005, 22h55

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