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 :

des problems avec xsl:if


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Points : 8
    Points
    8
    Par défaut des problems avec xsl:if
    g des problemes avec cet example
    l'ordre n'est pas réspecter dans le remplissage du tableau je afficher les information dans l'ordre .
    voici 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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    ?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml-stylesheet type="text/xsl" href="pre4.xsl" ?>
    <employés>
    <liste nom=" la liste des travailleurs">
     
    <personne>
      <nom>assaad</nom> 
      <prenom>mohand Ameziane</prenom> 
      <age>25</age> 
        <dateNaissance>
      <jour>17</jour> 
      <mois>Novenmbre</mois> 
      <annee>1980</annee> 
      </dateNaissance>
     </personne>
     
     <personne>
      <nom>chalbabi</nom> 
      <prenom>mahdi</prenom> 
      <age>27</age> 
     <dateNaissance>
      <jour>20</jour> 
      <mois>Mars</mois> 
      <annee>1973</annee> 
      </dateNaissance>
     </personne>
     
    <personne>
       <nom>darhab</nom> 
      <prenom>wahid</prenom> 
      <age>28</age> 
     <dateNaissance>
      <jour>02</jour> 
      <mois>Avril</mois> 
      <annee>1978</annee> 
      </dateNaissance>
    </personne>
     
     <personne>
       <nom>djanouri</nom> 
      <prenom>djamel</prenom> 
      <age>40</age> 
     <dateNaissance>
      <jour>05</jour> 
      <mois>Aout</mois> 
      <annee>1978</annee> 
      </dateNaissance>
    </personne>
     
      </liste>
     
      </employés>
    voici le fichier 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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <?xml version="1.0" encoding="utf-8" ?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:template match="/">
     <html>
     <head>
     </head>
     <body>
     
       <table border=""  >
     
    					<tr>
    						<th ><u>Nom</u></th>
    						<th>Prenom</th>
    						<th>Date de Naissance</th>
    					    <th>Age</th>
    					    <th>Position dans le document </th>
    					</tr>
     
        <xsl:apply-templates />
        </table>
    </body>
     </html>
    </xsl:template>	
     
     
          <xsl:template match="personne">
              <xsl:if test="age &gt; 30">
                      <tr> 
                      <xsl:apply-templates />
                      </tr>   
               </xsl:if>   
          </xsl:template>
     
     
                 <xsl:template match="nom">
                        <td BGCOLOR="pink"><xsl:value-of select="." /></td>
                        </xsl:template>
     
     
                  <xsl:template match="prenom">
                  <td BGCOLOR="pink"><xsl:value-of select="." /></td>
                  </xsl:template>
     
                   <xsl:template match="dateNaissance">
         	       <td BGCOLOR="pink">  <xsl:value-of select="."/> </td>
    	           </xsl:template>
     
     
                   <xsl:template match="age">
     
                   <td > <xsl:value-of select="." /> </td>
                   	<td>
    		<xsl:number level="single" count="personne" at="1 " />
    		</td>
                   </xsl:template> 
     
     
    </xsl:stylesheet>

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    le probleme vient du fait que les elements ne sont ordonés dans l ordre du html final donc le xsl les prend les uns à la suite des autres en suivant l ordre du xml
    Ici, il faut donc lui spécifier ce qu il faut traiter
    de plus le template spécifiat le prédicat de limitation d age permet de ne plus avoir besoin du ifde départ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	<xsl:template match="personne[age &gt; 30]">
    		<tr>
    			<xsl:apply-templates select="nom"/>
    			<xsl:apply-templates select="Prenom"/>
    			<xsl:apply-templates select="dateNaissance"/>
    			<xsl:apply-templates select="Age"/>
    		</tr>
    	</xsl:template>

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Points : 8
    Points
    8
    Par défaut des problems avec xsl:if
    merci pour votre conseil mais c na pas marcher
    l'orde reste le meme g assayer ça est ça 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
    53
    54
    55
    56
    57
    58
    59
     
    <html>
     
     <head>
     <title> mohamed121 </title>
     </head>
     <body>
     <table border="1"  >
     
    					<tr>
    						<th ><u>Nom</u></th>
    						<th>Prenom</th>
    						<th>Date de Naissance</th>
    					    <th>Age</th>
    					    <th>position</th>
    					</tr>
     
        <xsl:apply-templates />
        </table>
     
      </body>
     
     </html>
     
    </xsl:template>
     
     
     <xsl:template match="personne">
              <xsl:if test="age &gt;= 30">
    	<tr>
    							<td>
     
                     <xsl:value-of select="nom" />
     
    							</td>
     
    								<td>
    								<xsl:value-of select="prenom"/>
     
    							    </td>
    							<td>
    								<xsl:value-of select="dateNaissance"/>
     
    							</td>
    							<td >
    								<xsl:value-of select="age"/>
    							</td>
    							<td>
    				<xsl:number level="single" count="personne" format="1 " />
    							</td>
     
    	</tr>
     
    			</xsl:if>
     
    		</xsl:template>
     
     
    		</xsl:stylesheet>
    mais je vous pose une des questions:
    comment utiliser les prédicats dans les template
    cette utilisation est vraiment efficace :

Discussions similaires

  1. Linux à des problèmes avec les brevets
    Par bilb0t dans le forum Linux
    Réponses: 15
    Dernier message: 21/11/2006, 13h54
  2. Des problemes avec ces threads <pthread.h>
    Par nasamad dans le forum GTK+ avec C & C++
    Réponses: 26
    Dernier message: 07/07/2006, 12h46
  3. probleme avec xsl
    Par rootdaoud dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 28/04/2006, 20h40
  4. Que des problèmes avec vi
    Par meufeu dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 20/07/2004, 16h48
  5. toujours des problemes avec ce DROP
    Par Missvan dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 18/02/2004, 08h43

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