Bonjour!
Voila, après toutes mes ptites questions, j'ai enfin réussi à obtenir ce que je voulais, seulement il semblre que ce n'est pas ce que l'on me demandait exactement... Donc en gros, au lieu de réaliser une présentation en treeview classique avec les élements se dépliant ainsi que leurs attributs respectifs, je dois passer à une mise en forme en tableau avec en entête de colonne les noms des attributs, en entrée de ligne les éléments et avec la valeur de l'attribut à l'intersection d'un nom d'élement et d'un nom d'attribut...( j'espère que j'ai été clair...)
Bref, non seulement je ne sais pas du tout comment faire cela car il me semble que je devrais faire plusieurs parcours pour prendre une première fois les attributs, puis une seconde fois les valeurs des attributs, etc...
Donc, je me suis dit que j'allais commencer par réaliser déja ce que je voulais en faisant la première partie dynamique (récolter les noms des attributs pour les entêtes des colonnes)
Seulement voila, j'ai un premirer problème parce que comme je ne dois pas avoir d'entête de colonne redondant d'affiché, je fais une régle pour le premier entête que je rencontre s'il y en a un autre, alors je le saute...
voila a quoi ressemble mon xsl:
Le problème est que j'ai bien les entetes que je désire mais pour celle que je ne veux pas, il me crée quand même une entête vide...
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 <xsl:template match="/*"> <html> <style type="text/css"> .entete { background-color:#FFFFFF; font-family: Verdana; font-size: 7pt; color:#851D1C;} .ligne1 { background-color:#FFFFFF; font-family: Verdana; font-size: 7pt; cursor:pointer; color:#537DB9;} .ligne2 { background-color:#EEEEEE; font-style:blod;font-family: Verdana; font-size: 7pt; color:#537DB9; cursor:pointer;} .ligne3 { background-color:#FFFFFF; font-style:blod;font-family: Verdana; font-size: 7pt; color:#537DB9;} .vide { color:#FFFFFF;} </style> <script language="javascript" src="./affichage2.js"></script> <body> <table width="70%" align="center" border="1" > <tr border="1"> <xsl:for-each select="@*"> <xsl:variable name="le_nom"><xsl:choose> <xsl:when test="name()='oa_id_message'">#</xsl:when> </xsl:choose></xsl:variable> <th class="vide">_________</th> <th class="entete" border="1"> <b><xsl:value-of select="string($le_nom)"/></b> </th> </xsl:for-each> <xsl:apply-templates select="*"/> </tr> <tr style="display:block"> <td name="td1" class="ligne1" onclick="javascript:affiche_cache(this);" ><img name="signe_principal" src="./images/plus.gif" /> Message</td><td>1 </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td><td>/ </td> </tr> <tr name="tr_secondaire" style="display:none"> <td name="secondaire" class="ligne2" onclick="javascript:affiche_cache(this);" >...<xsl:text> </xsl:text><img name="signe" src="./images/plus.gif" /> Process</td><td>1 </td> </tr> <tr name="tr_final" style="display:none"> <td class="ligne3" >...... Origin Site</td><td>1 </td> </tr> <tr name="tr_final" style="display:none"> <td class="ligne3" >...... Target Site</td><td>1 </td> </tr> <tr name="tr_final" style="display:none"> <td class="ligne3" >...... Step</td><td>1 </td> </tr> <tr name="tr_final" style="display:none"> <td class="ligne3" >...... Business Object</td><td>1 </td> </tr> </table> </body> </html> </xsl:template> <xsl:template match="*"> <xsl:choose> <xsl:when test="*"> <xsl:for-each select="@*"> <xsl:variable name="le_nom2"><xsl:choose> <xsl:when test="name()='oa_nom_processus'">Name</xsl:when> <xsl:when test="name()='oa_date_heure_gmt_deb_processus'">Start Time</xsl:when> <xsl:when test="name()='oa_date_heure_gmt_fin_processus'">End Time</xsl:when> <xsl:when test="name()='oa_code_retour_processus'">Return Code</xsl:when> </xsl:choose></xsl:variable> <th class="entete"> <b><xsl:value-of select="string($le_nom2)"/></b> </th> </xsl:for-each> <xsl:apply-templates select="*"/> </xsl:when> <xsl:otherwise> <xsl:for-each select="@*"> <xsl:variable name="le_nom3"><xsl:choose> <xsl:when test="name()='oa_adresse_physique_origine'">Physical Address</xsl:when> <xsl:when test="name()='oa_designation_objet_metier'">Designation</xsl:when> </xsl:choose></xsl:variable> <th class="entete"> <b><xsl:value-of select="string($le_nom3)"/></b> </th> </xsl:for-each> </xsl:otherwise> </xsl:choose> </xsl:template>
Notamment, iciComment lui dire que pour les attributs ou je ne fais pas de règles de remplacement de nom, de ne pas faire de <th>...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <xsl:for-each select="@*"> <xsl:variable name="le_nom2"><xsl:choose> <xsl:when test="name()='oa_nom_processus'">Name</xsl:when> <xsl:when test="name()='oa_date_heure_gmt_deb_processus'">Start Time</xsl:when> <xsl:when test="name()='oa_date_heure_gmt_fin_processus'">End Time</xsl:when> <xsl:when test="name()='oa_code_retour_processus'">Return Code</xsl:when> </xsl:choose></xsl:variable> <th class="entete"> <b><xsl:value-of select="string($le_nom2)"/></b> </th> </xsl:for-each>
Voila, dsl pour ce texte aussi long, je suis vraiment pas sur d'avoir été clair, mais en tout cas, j'espère que l'un d'entre vous vois de quoi je parle...
Ah et puis si vous aviez des idées pour un xsl correspondant à ce que je recherche, ça serait aussi très sympa parce que tout recommencer me motive moins qu'au début...![]()
Partager