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 :

utilisation de key


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 139
    Points : 68
    Points
    68
    Par défaut utilisation de key
    Bonsoir,

    je vois que la structure de key est ainsi <xsl:key name="nom" match="pattern" use="expression"/>
    avec:

    name ="nom" -> Le nom de la clé
    match="pattern" -> Le noeud concerné par cette clé
    use ="expression" -> La valeur de la clé pour chaque noeud concerné


    et aussi <xsl:key name="idchapter" match="chapter" use="@id"/>
    et <xsl:value-of select="key('idchapter', $node/@idref)/title"/>
    dans l'exemple de mon cours mais je ne comprends pas du tout comment utiliser ce genre de chose dans un fichier xsl.


    Voilà mon 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
    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
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
      <xsl:output method="xml" encoding="iso-8859-1" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" indent="yes"/>
     
    <xsl:template match="/">
    <html>
      <head>
        <title>Gedcom</title>
         <link href="completFin.css" rel="stylesheet" type="text/css"/>
      </head>
      <body>
      <h1>Gedcom</h1>
     
      <!--<h2>Head</h2>
      <ul>
        <xsl:apply-templates select="gedcom/head">
        </xsl:apply-templates>	
      </ul>-->
     
      <h2>Individus</h2>
      <ul>
     
        <xsl:apply-templates select="gedcom/indi">
        <xsl:sort select="name" order="ascending"/>
        </xsl:apply-templates>	
      </ul>
     
    <h2>Familles</h2>
    	<ul>
    	<xsl:apply-templates select="gedcom/fam">
    	<xsl:sort select="husb"/>
    	</xsl:apply-templates>
      	</ul>
     
      </body>
    </html>
    </xsl:template>
     
    <xsl:template match="indi">
    <span id="{@id}">
        <br/><h3>L'individu numéro <xsl:value-of select="@id"/> :</h3>
        </span>
       <li><xsl:apply-templates/></li>
    </xsl:template>
     
    <xsl:template match="head">
       <xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="sour">
       <li><xsl:apply-templates/></li>
    </xsl:template>
     
    <xsl:template match="name">
      <i><xsl:apply-templates/></i><br/>
    </xsl:template>
     
    <xsl:template match="sex">
      Sexe: <xsl:apply-templates/><br/>
    </xsl:template>
     
    <xsl:template match="famc">
      <xsl:variable name="fc" select="@ref"/>
    	<i>FAMC :</i>
    	<a href="#{$fc}">
    	<xsl:value-of select="@ref"/>
    	</a>
    	<br/>
    </xsl:template>
     
    <xsl:template match="fams">
      <xsl:variable name="fs" select="@ref"/>
    	<i>FAMS :</i>  
    	<a href="#{$fs}">
    	<xsl:value-of select="@ref"/>
    	</a>
    	<br/>
    </xsl:template>
     
     
    <xsl:template match="fam">
    <xsl:variable name="f" select="@id"/>
       <span id="{$f}">
         <br/><h3>Famille<xsl:value-of select="@id"/>: </h3>
         </span>
         <li><xsl:apply-templates/></li>
    </xsl:template>
     
    <xsl:template match="husb">
    	<xsl:variable name="hus" select="@ref"/>
    	<i>Mari</i> : 
    	<a href="#{$hus}">
    	<xsl:value-of select="@ref"/>
    	</a>
    	<br/>
    </xsl:template>
     
    <xsl:template match="wife">
    	<xsl:variable name="wif" select="@ref"/>
    	<i>L'épouse</i> :
    	<a href="#{$wif}">
    	<xsl:value-of select="@ref"/>
    	</a>
    	<br/>	
    </xsl:template>
     
    <xsl:template match="chil">
    	<xsl:variable name="chl" select="@ref"/>
    	<i>L'enfant</i> :
    	<a href="#{$chl}">
    	<xsl:value-of select="@ref"/>
    	</a>
    	<br/>	
    </xsl:template>
     
    <xsl:template match="marr">
       <i>Marriage : </i>
       le <xsl:value-of select="date"/>
    	  lieu :<xsl:value-of select="plac"/><br/>
    </xsl:template>
     
    <xsl:template match="date">
      le <xsl:apply-templates/><xsl:text>, </xsl:text>
    </xsl:template>
     
    <xsl:template match="vers">
      ,version <xsl:apply-templates/><br/>
    </xsl:template>
     
    <xsl:template match="corps">
      <i>coordonnes:<xsl:apply-templates/></i>
    </xsl:template>
     
    <xsl:template match="addr">
      <br/>adresse: <xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="cont">
      <i><xsl:apply-templates/></i>
    </xsl:template>
     
    <xsl:template match="phon">
      <br/> telephone :<xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="dest">
      dest: <xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="char">
       char:<xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="file">
      file:<xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="plac">
      <i><xsl:apply-templates/></i>
    </xsl:template>
     
    <xsl:template match="titl">
    	  titre: <xsl:apply-templates/><br/>
    	</xsl:template>
     
    <xsl:template match="birt">
    	  ne :
    	  le <xsl:value-of select="date"/>
    	  lieu :<xsl:value-of select="plac"/><br/>
    	</xsl:template>
     
    <xsl:template match="deat">
    	  mort :
    	  le <xsl:value-of select="date"/>
    	  lieu :<xsl:value-of select="plac"/><br/>
    	</xsl:template>
     
    </xsl:stylesheet>
    et les fichiers xml
    complet.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
    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
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <gedcom>
     
    <head>
    </head>
     
    <fam
     id="f1">
    	<husb ref="i1"	/>
    	<wife ref="i2"	/>
    	<chil ref="i3"	/>
    	<chil ref="i4"	/>
    	<marr>
    		<date>
    			7 AUG 1987 
    		</date>
    		<plac>
    			United States 
    		</plac>
    	</marr>
    </fam>
     
    <fam
     id="f2">
    	<husb ref="i3"	/>
    	<wife ref="i5"	/>
    	<chil ref="i7"	/>
    	<chil ref="i9"	/>
    	<marr>
    		<date>
    			7 APR 1997 
    		</date>
    		<plac>
    			France 
    		</plac>
    	</marr>
    </fam>
     
    <fam
     id="f3">
    	<husb ref="i6"	/>
    	<wife ref="i4"	/>
    	<chil ref="i17"	/>
    	<chil ref="i11"	/>
    	<chil ref="i12"	/>
    	<chil ref="i13"	/>
    	<marr>
    		<date>
    			13 JUN 2001 
    		</date>
    		<plac>
    			Italie 
    		</plac>
    	</marr>
    </fam>
     
    <fam
     id="f4">
    	<husb ref="i7"	/>
    	<wife ref="i8"	/>
    	<chil ref="i14"	/>
    	<chil ref="i15"	/>
    </fam>
     
    <fam
     id="f5">
    	<husb ref="i9"	/>
    	<wife ref="i10"	/>
    	<chil ref="i16"	/>
    </fam>
     
    <indi
     id="i1">
    	<name>
    		Jerome /Turing/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<fams ref="f1"	/>
    </indi>
     
    <indi
     id="i2">
    	<name>
    		Estelle /Knuth/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<fams ref="f1"	/>
    </indi>
     
    <indi
     id="i3">
    	<name>
    		Frederic /Turing/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<famc ref="f1"	/>
    	<fams ref="f2"	/>
    </indi>
     
    <indi
     id="i5">
    	<name>
    		Caroline /Rabin/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<fams ref="f2"	/>
    </indi>
     
    <indi
     id="i4">
    	<name>
    		Julie /Turing/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<famc ref="f1"	/>
    	<fams ref="f3"	/>
    </indi>
     
    <indi
     id="i6">
    	<name>
    		Nicolas /Büchi/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<fams ref="f3"	/>
    </indi>
     
    <indi
     id="i7">
    	<name>
    		Arnaud /Turing/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<famc ref="f2"	/>
    	<fams ref="f4"	/>
    </indi>
     
    <indi
     id="i8">
    	<name>
    		Laurence /Church/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<fams ref="f4"	/>
    </indi>
     
    <indi
     id="i9">
    	<name>
    		Manuel /Turing/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<famc ref="f2"	/>
    	<fams ref="f5"	/>
    </indi>
     
    <indi
     id="i10">
    	<name>
    		Nicole /von Neumann/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<fams ref="f5"	/>
    </indi>
     
    <indi
     id="i11">
    	<name>
    		Dylan /Büchi/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<famc ref="f3"	/>
    </indi>
     
    <indi
     id="i12">
    	<name>
    		Séverine /Büchi/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<famc ref="f3"	/>
    </indi>
     
    <indi
     id="i13">
    	<name>
    		Martine /Büchi/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<famc ref="f3"	/>
    </indi>
     
    <indi
     id="i17">
    	<name>
    		Sylvain /Büchi/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<famc ref="f3"	/>
    </indi>
     
    <indi
     id="i14">
    	<name>
    		Françoise /Turing/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<famc ref="f4"	/>
    </indi>
     
    <indi
     id="i15">
    	<name>
    		David /Turing/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<famc ref="f4"	/>
    </indi>
     
    <indi
     id="i16">
    	<name>
    		Alain /Turing/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<famc ref="f5"	/>
    </indi>
     
    <trlr/>
    </gedcom>
    doe.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
    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
    140
    141
    142
     
    <gedcom>
     
    <head>
    	<sour>
    		FTW 
    		<vers>
    			5.00 
    		</vers>
    		<name>
    			Family Tree Maker for Windows 
    		</name>
    		<corp>
    			Broderbund Software, Banner Blue Division 
    			<addr>
    				39500 Stevenson Pl. #204 
    				<cont>
    					Fremont, CA 95439 
    				</cont>
    			</addr>
    			<phon>
    				(510) 794-6850 
    			</phon>
    		</corp>
    	</sour>
    	<dest>
    		PAF 
    	</dest>
    	<date>
    		10 APR 1999 
    	</date>
    	<char>
    		ANSI 
    	</char>
    	<file>
    		doe.ged 
    	</file>
    	<gedc>
    		<vers>
    			5.5 
    		</vers>
    	</gedc>
    </head>
     
    <indi
     id="i01">
    	<name>
    		John /Doe/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<birt>
    		<date>
    			23 JAN 1961 
    		</date>
    		<plac>
    			Australia 
    		</plac>
    	</birt>
    	<deat>
    		<date>
    			8 JUL 1988 
    		</date>
    		<plac>
    			Scotland 
    		</plac>
    	</deat>
    	<fams ref="f1"	/>
    </indi>
     
    <indi
     id="i02">
    	<name>
    		Rosanna /Housewife/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<birt>
    		<date>
    			15 DEC 1968 
    		</date>
    		<plac>
    			Canada 
    		</plac>
    	</birt>
    	<deat>
    		<date>
    			8 JUL 1988 
    		</date>
    		<plac>
    			Scotland 
    		</plac>
    	</deat>
    	<fams ref="f1"	/>
    </indi>
     
    <indi
     id="i03">
    	<name>
    		Joe /Doe/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<birt>
    		<date>
    			15 JUN 1988 
    		</date>
    		<plac>
    			United States 
    		</plac>
    	</birt>
    	<deat>
    		<date>
    			8 JUL 1988 
    		</date>
    		<plac>
    			Scotland 
    		</plac>
    	</deat>
    	<famc ref="f1"	/>
    </indi>
     
    <fam
     id="f1">
    	<husb ref="i01"	/>
    	<wife ref="i02"	/>
    	<chil ref="i03"	/>
    	<marr>
    		<date>
    			7 AUG 1987 
    		</date>
    		<plac>
    			United States 
    		</plac>
    	</marr>
    </fam>
     
    <trlr/>
    </gedcom>
    j'aimerais utiliser key pour afficher dans mon fichier html les noms des individus (indi) dans la catégorie famille (fam) en mettant en lien les noms au lieu des id

    exemple de l'affichage pour complet (voir fichier joint)

    En gros à chaque fois que j'ai l'affichage de Familles, il y a le mari, etc
    et nous avons leur identifiant d'individu et à la place d'afficher leur identifiant, je voudrais plutôt afficher leur nom mais je ne comprends pas du tout l'utilisation de key.

    Je suis débutant et j'aurais besoin d'aide.

    Merci d'avance pour votre aide et votre compréhension
    Fichiers attachés Fichiers attachés

  2. #2
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 139
    Points : 68
    Points
    68
    Par défaut
    désolé pour le double post

    j'essaye d'utiliser le key ainsi
    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
    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
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
      <xsl:output method="xml" encoding="iso-8859-1" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" indent="yes"/>
     
    <xsl:template match="/">
    <html>
      <head>
        <title>Gedcom</title>
         <link href="completFin.css" rel="stylesheet" type="text/css"/>
      </head>
      <body>
      <h1>Gedcom</h1>
     
      <!--<h2>Head</h2>
      <ul>
        <xsl:apply-templates select="gedcom/head">
        </xsl:apply-templates>	
      </ul>-->
     
      <h2>Individus</h2>
      <ul>
     
        <xsl:apply-templates select="gedcom/indi">
        <xsl:sort select="name" order="ascending"/>
        </xsl:apply-templates>	
      </ul>
     
    <h2>Familles</h2>
    	<ul>
    	<xsl:apply-templates select="gedcom/fam">
    	<xsl:sort select="husb"/>
    	</xsl:apply-templates>
      	</ul>
     
      </body>
    </html>
    </xsl:template>
     
    <xsl:template match="indi">
    <span id="{@id}">
        <br/><h3>L'individu numéro <xsl:value-of select="@id"/> :</h3>
        </span>
       <li><xsl:apply-templates/></li>
    </xsl:template>
     
    <xsl:template match="head">
       <xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="sour">
       <li><xsl:apply-templates/></li>
    </xsl:template>
     
    <xsl:template match="name">
      <i><xsl:apply-templates/></i><br/>
    </xsl:template>
     
    <xsl:template match="sex">
      Sexe: <xsl:apply-templates/><br/>
    </xsl:template>
     
    <xsl:template match="famc">
      <xsl:variable name="fc" select="@ref"/>
    	<i>FAMC :</i>
    	<a href="#{$fc}">
    	<xsl:value-of select="@ref"/>
    	</a>
    	<br/>
    </xsl:template>
     
    <xsl:template match="fams">
      <xsl:variable name="fs" select="@ref"/>
    	<i>FAMS :</i>  
    	<a href="#{$fs}">
    	<xsl:value-of select="@ref"/>
    	</a>
    	<br/>
    </xsl:template>
     
     
    <xsl:template match="fam">
    <xsl:variable name="f" select="@id"/>
       <span id="{$f}">
         <br/><h3>Famille<xsl:value-of select="@id"/>: </h3>
         </span>
         <li><xsl:apply-templates/></li>
    </xsl:template>
     
    <xsl:template match="husb">
    	<xsl:variable name="hus" select="@ref"/>
    	<i>Mari</i> : 
    	<a href="#{$hus}">
    	<xsl:value-of select="@ref"/>
    	</a>
    	<br/>
    </xsl:template>
     
    <xsl:template match="wife">
    	<xsl:variable name="wif" select="@ref"/>
     
    	<i>L'épouse</i> :
    	<a href="#{$wif}">
    	<!--<xsl:value-of select="@ref"/>-->
          <xsl:value-of select='key("kkk","@ref")'/>
    	</a>
    	<br/>	
    </xsl:template>
     
    <xsl:template match="chil">
    	<xsl:variable name="chl" select="@ref"/>
    	<i>L'enfant</i> :
    	<a href="#{$chl}">
    	<xsl:value-of select="@ref"/>
    	</a>
    	<br/>	
    </xsl:template>
     
    <xsl:template match="marr">
       <i>Marriage : </i>
       le <xsl:value-of select="date"/>
    	  lieu :<xsl:value-of select="plac"/><br/>
    </xsl:template>
     
    <xsl:template match="date">
      le <xsl:apply-templates/><xsl:text>, </xsl:text>
    </xsl:template>
     
    <xsl:template match="vers">
      ,version <xsl:apply-templates/><br/>
    </xsl:template>
     
    <xsl:template match="corps">
      <i>coordonnes:<xsl:apply-templates/></i>
    </xsl:template>
     
    <xsl:template match="addr">
      <br/>adresse: <xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="cont">
      <i><xsl:apply-templates/></i>
    </xsl:template>
     
    <xsl:template match="phon">
      <br/> telephone :<xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="dest">
      dest: <xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="char">
       char:<xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="file">
      file:<xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="plac">
      <i><xsl:apply-templates/></i>
    </xsl:template>
     
    <xsl:template match="titl">
    	  titre: <xsl:apply-templates/><br/>
    	</xsl:template>
     
    <xsl:template match="birt">
    	  ne :
    	  le <xsl:value-of select="date"/>
    	  lieu :<xsl:value-of select="plac"/><br/>
    	</xsl:template>
     
    <xsl:template match="deat">
    	  mort :
    	  le <xsl:value-of select="date"/>
    	  lieu :<xsl:value-of select="plac"/><br/>
    	</xsl:template>
    <xsl:key name="kkk" match = "*" use = "@*"/>
    </xsl:stylesheet>
    et l'élément correspondant à wife ne s'affiche pas


    je suis débutant et j'ai besoin d'aide n'arrivant pas à utiliser key correctement.


    Merci

  3. #3
    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,

    il faudrait que tu relises un peu ton cours.

    xsl:key sert à indiquer au processeur XSLT quels sont les noeuds que tu veux indexer, et quelle sera la clé (chaîne de caractères) permettant de les retrouver (il ne s'agit pas d'une indexation unique : une même clé peut indexer plusieurs noeuds). Comme on peut avoir plusieurs indexes pour un même document XML, on leur attribue un nom unique. On peut comparer grossièrement xsl:key à une instruction CREATE INDEX dans une base de données relationnelle.

    Généralement, on place les xsl:key en début de code, avant le premier xsl:template.

    xsl:key seul ne sert pas à grand chose, c'est avec la fonction key() utilisable dans les expressions XPath que tout cela prend un sens : elle prend en paramètre un nom d'index, une clé, et renvoie la liste des noeuds indexés par cette clé, et pour l'index créé avec xsl:key qui porte ce nom. Si aucun noeuds n'est indexés par cette clé, elle renvoie un ensemble vide.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 139
    Points : 68
    Points
    68
    Par défaut
    j'en ai bien besoin en effet

    En gros l'appel de la fonction key() dans une expression xpath peut être comparable à une instruction select en base de données qui va récupérer les informations qu'on lui demande.

    Si j'ai bien compris, la position de la ligne <xsl:key name="kkk" match = "*" use = "@*"/> a une importance

    si j'utilise cela <xsl:value-of select='key("kkk","@ref")'/> dans le template comme dans le schéma utilisé donc la valeur du ref ne sera pas trouvé car kkk contient une liste vide, c'est à cause de la manière dont key a été utilisé ou bien la structure qui ne demande pas ce qu'il faut?

    Merci

    EDIT: j'ai réussi à faire afficher quelque chose qui correspond à part qu'il y a un truc en trop mais ce n'est pas grave

    encore Merci à GrandFather

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

Discussions similaires

  1. utilisation Foreign keys
    Par The_Big_Lebowski dans le forum Requêtes
    Réponses: 6
    Dernier message: 06/10/2009, 22h53
  2. [XSD] utilisation de key et keyref
    Par DoubleU dans le forum Valider
    Réponses: 2
    Dernier message: 07/03/2008, 11h15
  3. [DEBUTANT] Utilisation UNIQUE KEY, INDEX,
    Par nounetmasque dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 26/07/2007, 17h07
  4. [MySQL] Utilisation des Foreign Key
    Par Regnak dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/08/2006, 15h37
  5. utilisation des angel keys
    Par zidenne dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 13/01/2006, 14h11

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