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 :

[XSL][IDREF] Comment recuperer?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut [XSL][IDREF] Comment recuperer?
    Voila, je suis assez debutant en xml / xsl et pour l'ecole je dois faire un xsl pour afficher des reservation / desistements.

    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
     
    <!ELEMENT gestion (ListeClient,(reservation|desistement)*)>
     
     
    <!ELEMENT reservation (libelle, prix, (activiteDateDebut|materiel))>
    <!ATTLIST reservation refno ID #REQUIRED >
    <!ATTLIST reservation status (paid|nopaid)  "nopaid" >
    <!ATTLIST reservation refcli IDREF #REQUIRED >
    <!ATTLIST reservation type (Materiel|Activite) "Materiel" >
     
     
    <!ELEMENT libelle (#PCDATA)>
     
    <!ELEMENT prix (#PCDATA)>
    <!ATTLIST prix unite (euro|dollar|yen) "euro" >
     
    <!ELEMENT client (ClientNom, ClientDateNaissance)>
    <!ELEMENT ClientNom (#PCDATA) >
    <!ELEMENT ClientDateNaissance (#PCDATA) >
    <!ATTLIST client sexe (M|F) "M" >
    <!ATTLIST client numcli ID #REQUIRED >
     
    <!ELEMENT activiteDateDebut (#PCDATA) > 
    <!ELEMENT materiel EMPTY >
    <!ATTLIST materiel matref CDATA #REQUIRED >
    <!ATTLIST materiel mattype CDATA #REQUIRED >
     
    <!ELEMENT desistement (libelle, (activiteDateDebut|materiel)) >
    <!ATTLIST desistement raison (Sante|None|Dead) #REQUIRED >
    <!ATTLIST desistement type (Materiel|Activite) "Materiel" >
    <!ATTLIST desistement refcli IDREF #REQUIRED >
    <!ELEMENT ListeClient (client*)>

    Voila pour afficher les attribut directement aucun probleme.

    Jusqu'ici j'affiche le refcli seulement, qui doit absolument correspondre à un client.

    Mais j'aimerai au lieu d'afficher le refcli, de pouvoir afficher le nom du client qui y est associe..

    Mais j'trouve pas comment faire,

    Est-ce que vous pouvez m'aider ? ou bien me filer un lien vers de la doc dans ce sens ?

    Merci

  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
    il faut un code xsl pour ça, je crains ne pas comprendre le problème

  3. #3
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Mon 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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <!DOCTYPE gestion SYSTEM "reservation.dtd"><?xml:stylesheet type="text/xsl" href="Reservation.xsl"?>
    <gestion>
        <ListeClient>
            <client numcli="fdsfds" sexe="M">
                <ClientNom>hikage</ClientNom>
                <ClientDateNaissance>20/02/2006</ClientDateNaissance>
            </client>
        </ListeClient>
        <reservation refcli="fdsfds" refno="fdsfdsfds" status="paid" type="Materiel">
            <libelle>fdfds</libelle>
            <prix>432</prix>
            <materiel matref="fds" mattype="fds"/>
        </reservation>
        <reservation refcli="fdsfds" refno="fdsfds432" status="paid" type="Activite">
            <libelle>fdfds</libelle>
            <prix>432</prix>
            <activiteDateDebut>20/12/2005</activiteDateDebut>
        </reservation>
    </gestion>

    Mon fichiers xls


    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
    98
    99
    100
    101
    102
    103
    104
     
    <?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"/> 
     
    <xsl:template match="/">
    <html>
    <head>
    <title>
    Reservation // Desistements
    </title>      
    </head>
    <body>
     
       <xsl:apply-templates select="gestion"/>
       <xsl:apply-templates select="gestion/*"/>
     
     
     
    </body>
    </html>
    </xsl:template>
     
     
       <xsl:template match="gestion">
     
     
       </xsl:template>
       <xsl:template match="ListeClient">
            <h2><b>Liste des clients</b></h2>
            <hr/>
            <xsl:apply-templates select="client" />
       </xsl:template>
     
       <xsl:template match="client">
       <h3><xsl:value-of select="ClientNom"/> ( ref : <xsl:value-of select="@numcli"/> )</h3>
       Date naissance : <xsl:value-of select="ClientDateNaissance"/>
       <br />Sexe : <xsl:value-of select="@sexe"/>
    	<hr />
     
       </xsl:template>
     
       <xsl:template match="reservation" >
     
    		<xsl:if test="@type = 'Activite'">
    		   <h3>Reservation d'une activite ( ref : <xsl:value-of select="@refno" /> )</h3>
    		   Libelle : <xsl:value-of select="libelle" />
    		      		<br />Réference du client : <xsl:value-of select="@refcli" /> 
    		   <br />Prix : <xsl:value-of select="prix" />
    		   <br />Date : <xsl:value-of select="activiteDateDebut" />
    		   <xsl:if test="@status = 'paid'">
    			   <br /> Status : <font color="green">Paye</font>
    		   </xsl:if>
    		   <xsl:if test="@status = 'nopaid'">
    			   <br /> Status : <font color="red">Non payé</font>
    		   </xsl:if>
    		</xsl:if>
     
    		<xsl:if test="@type = 'Materiel'">
    		   <h3>Reservation de materiel ( ref : <xsl:value-of select="@refno" /> )</h3>
     
    		      Libelle : <xsl:value-of select="libelle" />
    		   <br />Prix : <xsl:value-of select="prix" /><xsl:value-of select="prix/@unite" /> 
    		   <br />Type : <xsl:value-of select="materiel/@mattype" /> ( reference materiel : <xsl:value-of select="materiel/@matref" /> )
    		   <xsl:if test="@status = 'paid'">
    			   <br /> Status : <font color="green">Paye</font>
    		   </xsl:if>
    		   <xsl:if test="@status = 'nopaid'">
    			   <br /> Status : <font color="red">Non payé</font>
    		   </xsl:if>
     
    		</xsl:if>
     
     
    	</xsl:template>
     
    	<xsl:template match="desistement">
     
    		<xsl:if test="@type = 'Activite'">
    		   <h3>Desistements d'une activite ( ref : <xsl:value-of select="@refno" /> )</h3>
    		   Libelle : <xsl:value-of select="libelle" />
    		   <br />Date : <xsl:value-of select="activiteDateDebut" />
    		</xsl:if>
     
    		<xsl:if test="@type = 'Materiel'">
    		   <h3>Desistements de materiel ( ref : <xsl:value-of select="@refno" /> )</h3>
    			Libelle : <xsl:value-of select="libelle" />
    		   <br />Type : <xsl:value-of select="materiel/@mattype" />  ( reference materiel : <xsl:value-of select="materiel/@matref" /> )
    		</xsl:if>
     
    		<xsl:if test="@raison = 'Dead'">
    		<br />Cause : Il est mort le pov' type !
    		</xsl:if>
    		<xsl:if test="@raison = 'Sante'">
    		<br />Cause : Malade, et avec certificat médical !
    		</xsl:if>
    		<xsl:if test="@raison = 'None'">
    		<br />Cause : Pas d'excuse !
    		</xsl:if>	
    	</xsl:template>
     
     
    </xsl:stylesheet>

    Ce code pour une reservation donnerai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Reservation d'une activite ( ref : res005 )
    Libelle : Test
    Réference du client : cli005
    Prix : 45
    Date : 12/04/1984
    Status : Paye
    Ce que je veux changer, c'est le "Réference du client : cli005"
    en Nom client : <Le nom Associe au numero de client>

    Mais je ne sais pas comment faire

  4. #4
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="/gestion/ListeClient/client[@numcli=current()/@refcli]" />

  5. #5
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Ca marche impec, merci beaucoup

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

Discussions similaires

  1. [XSLT]comment recuperer variable dans url avec xsl
    Par jeha dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 29/10/2007, 11h34
  2. Réponses: 3
    Dernier message: 04/02/2004, 18h35
  3. Réponses: 2
    Dernier message: 19/01/2004, 12h19
  4. comment recuperer le nom des champs ?????
    Par e11137 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/01/2004, 10h00
  5. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40

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