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] mes premiers pas : insertion d'une valeur dans des balise et des hyperliens


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut [XSLT] mes premiers pas : insertion d'une valeur dans des balise et des hyperliens
    bonjour,
    comme je l'ai mis dans mon titre je suis un novice en xml donc encore plus en xslt et compagnie.

    Mon probleme est le suivant j'ai écrire un programmes XSLT pour transformer en page XHTML unfichier XML représentant un arbre généalogique (tout petit bien sur). Les liens entre familles et individus doivent être rendus par des liens hypertextes.

    voici mon code xsl :

    Code xml : 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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <html xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    	<body>
    		<xsl:for-each select="gedcom/famille">
    			<div id="">
    				<xsl:attribute name="id">
      					<xsl:value-of select="@id"/>
    				</xsl:attribute>
    				Famille numero <xsl:value-of select="@id"/><br/>
    				homme : <xsl:value-of select="husb"/><br/>
    				femme : <xsl:value-of select="wife"/><br/>
    				enfant(s) : <br/>
    				<xsl:for-each select="child">
    					<a href="#">
    					<xsl:attribute name="href">
      						<xsl:value-of select="."/>
    					</xsl:attribute>
    					<xsl:value-of select="."/>
    					</a><br/>
    				</xsl:for-each>
    				<xsl:if test="mara">
    					marie :
    					le <xsl:value-of select="mara/date"/>
    					lieu :<xsl:value-of select="mara/plac"/>
    				</xsl:if>
    			</div>
    			<hr width="50%" align="center"/>
    		</xsl:for-each>
     
    		<xsl:for-each select="gedcom/individu">
    			<div id="">
    				<xsl:attribute name="id">
      					<xsl:value-of select="@id"/>
    				</xsl:attribute>
    				Individu numero <xsl:value-of select="@id"/><br/>
    				nom: <xsl:value-of select="name"/><br/>
    				titre: <xsl:value-of select="titre"/><br/>
    				sex: <xsl:value-of select="sex"/><br/>
     
    				<xsl:if test="birt">
    					nee :
    					le <xsl:value-of select="birt/date"/>
    					lieu :<xsl:value-of select="birt/plac"/><br/>
    				</xsl:if>
     
    				<xsl:if test="deat">
    					mort :
    					le <xsl:value-of select="deat/date"/>
    					lieu :<xsl:value-of select="deat/plac"/><br/>
    				</xsl:if>
     
    				<xsl:if test="buri">
    					enterre :
    					le <xsl:value-of select="buri/date"/>
    					lieu :<xsl:value-of select="buri/plac"/><br/>
    				</xsl:if>
    				<xsl:if test="famc">famc : <a href="#">
    					<xsl:attribute name="href">
      						<xsl:value-of select="@idref"/>
    					</xsl:attribute>
    					<xsl:value-of select="famc/@idref"/>
    					</a><br/>
    				</xsl:if>
    				<xsl:if test="fams">fams : <a href="#">
    					<xsl:attribute name="href">
      						<xsl:value-of select="@idref"/>
    					</xsl:attribute>
    				<xsl:value-of select="fams/@idref"/></a><br/>
    				</xsl:if>
    			</div>
    			<hr width="50%" align="center"/>
    		</xsl:for-each>
    	</body>
    </html>

    le probleme quand je clique sur un lien il recharge juste la page sans m'ammener a l'individu ou la famille concerne.Je pense qu'il m'affecte pas non plus les id de mes balise div.

    Je ne sais plus quoi faire.

    merci d'avance pour votre aide

  2. #2
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Il nous faudrait un petit exemple du xml source stp.
    Ensuite, le xslt n'est pas tout a fait organisé comme il le faudrait.
    Enfin, tu peux mettre la balise CODE comme ceci: [CODE=xml ]balbalbla[/code ]

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut code xml
    bonjour,

    donc voici mon fichier xml :

    Code xml : 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
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
     
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE gedcom SYSTEM "fichiers1.dtd">
    <?xml:stylesheet type="text/xsl" href="pageG.xsl"?>
     
    <gedcom>
      <famille id="F1">
        <husb>I1</husb>
        <wife>I2</wife>
        <child>I3</child>
        <child>I4</child>
        <mara>
          <date>7 AUG 1987</date>
          <plac>United States</plac>
        </mara>
      </famille>
      <famille id="F2">
        <husb>I3</husb>
        <wife>I5</wife>
        <child>I7</child>
        <child>I9</child>
        <mara>
          <date>7 APR 1997</date>
          <plac>France</plac>
        </mara>
      </famille>
      <famille id="F3">
        <husb>I6</husb>
        <wife>I4</wife>
        <child>I17</child>
        <child>I11</child>
        <child>I12</child>
        <child>I13</child>
        <mara>
          <date>13 JUN 2001</date>
          <plac>Italie</plac>
        </mara>
      </famille>
      <famille id="F4">
        <husb>I7</husb>
        <wife>I8</wife>
        <child>I14</child>
        <child>I15</child>
      </famille>
      <famille id="F5">
        <husb>I9</husb>
        <wife>I10</wife>
        <child>I16</child>
      </famille>
      <individu id="I1">
        <name>Jerome /Turing/</name>
        <sex>M</sex>
        <fams idref="F1" />
      </individu>
      <individu id="I2">
        <name>Estelle /Knuth/</name>
        <sex>F</sex>
        <fams idref="F1" />
      </individu>
      <individu id="I3">
        <name>Frederic /Turing/</name>
        <sex>M</sex>
        <famc idref="F1" />
        <fams idref="F2" />
      </individu>
      <individu id="I5">
        <name>Caroline /Rabin/</name>
        <sex>F</sex>
        <fams idref="F2" />
      </individu>
      <individu id="I4">
        <name>Julie /Turing/</name>
        <sex>F</sex>
        <famc idref="F1" />
        <fams idref="F3" />
      </individu>
      <individu id="I6">
        <name>Nicolas /Büchi/</name>
        <sex>M</sex>
        <fams idref="F3" />
      </individu>
      <individu id="I7">
        <name>Arnaud /Turing/</name>
        <sex>M</sex>
        <famc idref="F2" />
        <fams idref="F4" />
      </individu>
      <individu id="I8">
        <name>Laurence /Church/</name>
        <sex>F</sex>
        <fams idref="F4" />
      </individu>
      <individu id="I9">
        <name>Manuel /Turing/</name>
        <sex>M</sex>
        <famc idref="F2" />
        <fams idref="F5" />
      </individu>
      <individu id="I10">
        <name>Nicole /von</name>
        <sex>F</sex>
        <fams idref="F5" />
      </individu>
      <individu id="I11">
        <name>Dylan /Büchi/</name>
        <sex>M</sex>
        <famc idref="F3" />
      </individu>
      <individu id="I12">
        <name>Séverine /Büchi/</name>
        <sex>F</sex>
        <famc idref="F3" />
      </individu>
      <individu id="I13">
        <name>Martine /Büchi/</name>
        <sex>F</sex>
        <famc idref="F3" />
      </individu>
      <individu id="I17">
        <name>Sylvain /Büchi/</name>
        <sex>M</sex>
        <famc idref="F3" />
      </individu>
      <individu id="I14">
        <name>Françoise /Turing/</name>
        <sex>F</sex>
        <famc idref="F4" />
      </individu>
      <individu id="I15">
        <name>David /Turing/</name>
        <sex>M</sex>
        <famc idref="F4" />
      </individu>
      <individu id="I16">
        <name>Alain /Turing/</name>
        <sex>M</sex>
        <famc idref="F5" />
      </individu>
    </gedcom>

    merci de ton aide

  4. #4
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Voilà, quelque chose d'organisé comme suit, me semble plus proche de ce que pourquoi est fait xsl :
    Code xml : 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
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:template match="/gedcom">
    		<html>
    			<head>
    				<title>Titre</title>
    			</head>
    			<body>
    				<h1>Arbre généalogique</h1>
    				<xsl:apply-templates/>
    			</body>
    		</html>
    	</xsl:template>
    	<xsl:template match="famille">
    		<div id="{@id}">
    			Famille numero <xsl:value-of select="@id"/><br/>
    			homme : <xsl:value-of select="husb"/><br/>
    			femme : <xsl:value-of select="wife"/><br/>
    			enfant(s) : <br/>
    			<xsl:for-each select="child">
    				<a href="#{.}"><xsl:value-of select="."/></a><br/>
    			</xsl:for-each>
    			<xsl:if test="mara">
    				marie :
    				le <xsl:value-of select="mara/date"/>
    				lieu :<xsl:value-of select="mara/plac"/>
    			</xsl:if>
    		</div>
    		<hr width="50%" align="center"/>
    	</xsl:template>
    	<xsl:template match="individu">
    		<div id="{@id}">
    			Individu numero <xsl:value-of select="@id"/><br/>
    			nom: <xsl:value-of select="name"/><br/>
    			titre: <xsl:value-of select="titre"/><br/>
    			sex: <xsl:value-of select="sex"/><br/>
     
    			<xsl:if test="birt">
    				nee :
    				le <xsl:value-of select="birt/date"/>
    				lieu :<xsl:value-of select="birt/plac"/><br/>
    			</xsl:if>
     
    			<xsl:if test="deat">
    				mort :
    				le <xsl:value-of select="deat/date"/>
    				lieu :<xsl:value-of select="deat/plac"/><br/>
    			</xsl:if>
     
    			<xsl:if test="buri">
    				enterre :
    				le <xsl:value-of select="buri/date"/>
    				lieu :<xsl:value-of select="buri/plac"/><br/>
    			</xsl:if>
    			<xsl:if test="famc">famc : <a href="#{@idref}">
    					<xsl:value-of select="famc/@idref"/>
    				</a><br/>
    			</xsl:if>
    			<xsl:if test="fams">fams : <a href="#{@idref}">
    					<xsl:value-of select="fams/@idref"/></a><br/>
    			</xsl:if>
    		</div>
    		<hr width="50%" align="center"/>
    	</xsl:template>
    </xsl:stylesheet>
    Ce qu'il faut noter, c'est :

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 14
    Points : 13
    Points
    13
    Par défaut merci

    merci beaucoup en effet ca marche tres bien

  6. #6
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Bien entendu, le but est que tu comprennes comment il faut faire (par l'exemple en l'occurrence) mais pas de donner la solution à un exo.
    Enfin, si c'est résolu, n'oublie pas de cliquer sur le bouton prévu a cet effet.

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

Discussions similaires

  1. Insertion d'une valeur dans un item
    Par pekrignan dans le forum PL/SQL
    Réponses: 1
    Dernier message: 27/06/2012, 15h31
  2. insertion d'une valeur dans un vecteur
    Par devlop_RO dans le forum MATLAB
    Réponses: 3
    Dernier message: 14/08/2010, 12h38
  3. Requette d insertion d une valeur dans un champ d une table
    Par djibsonne dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/05/2010, 11h52
  4. [XL-2003] Insertion d'une valeur dans une liste déroulante
    Par rafalemirage dans le forum Excel
    Réponses: 2
    Dernier message: 04/05/2009, 09h17
  5. [XSLT] Tester la non présence d'une valeur dans un fichier
    Par arnauann dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/01/2007, 16h29

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