Bonjour à tous,
Voilà 2 jours que je tourne en rond pour réussir à mettre en page mon xml via xsl
Voici un exemple de fichier xml
Donc voici un exemple de recherche pour 1 client
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 <ROWSET> <ROW num="1"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2608</TIND_CODE> <TIND_DESC>CBC BANQUE TOURNAI SUCCURSALE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33 B3</Adresse> <Localité>5000 NAMUR</Localité> </ROW> <ROW num="2"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2608</TIND_CODE> <TIND_DESC>CBC BANQUE TOURNAI SUCCURSALE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33-34 4</Adresse> <Localité>5000 NAMUR</Localité> </ROW> <ROW num="3"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2640</TIND_CODE> <TIND_DESC>CBC BANQUE MONS SUCCURSALE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33 B3</Adresse> <Localité>5000 NAMUR</Localité> </ROW> <ROW num="4"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2640</TIND_CODE> <TIND_DESC>CBC BANQUE MONS SUCCURSALE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33-34 4</Adresse> <Localité>5000 NAMUR</Localité> </ROW> <ROW num="5"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2853</TIND_CODE> <TIND_DESC>CBC GESTION PRIVEE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33-34 4</Adresse> <Localité>5000 NAMUR</Localité> </ROW> <ROW num="6"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2664</TIND_CODE> <TIND_DESC>CBC BANQUE NAMUR SUCCURSALE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33-34 4</Adresse> <Localité>5000 NAMUR</Localité> </ROW> <ROW num="7"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2757</TIND_CODE> <TIND_DESC>CBC BANQUE NAMUR SUCCURSALE-GE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33 B3</Adresse> <Localité>5000 NAMUR</Localité> </ROW> <ROW num="8"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2757</TIND_CODE> <TIND_DESC>CBC BANQUE NAMUR SUCCURSALE-GE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33-34 4</Adresse> <Localité>5000 NAMUR</Localité> </ROW> <ROW num="9"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2853</TIND_CODE> <TIND_DESC>CBC GESTION PRIVEE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33 B3</Adresse> <Localité>5000 NAMUR</Localité> </ROW> <ROW num="10"> <Id>85854</Id> <CONT_PRENOM>SOC. & DE SANTE ASBL</CONT_PRENOM> <CONT_NOM>ASSOC. CHRETIENNE DES INSTITUTIONS</CONT_NOM> <NUM_CLIENT>4784314</NUM_CLIENT> <COAD_ADRESSE_DIRECTE>O</COAD_ADRESSE_DIRECTE> <CONT_CLIENT>C</CONT_CLIENT> <TCON_CODE>412 - MAISONS DE REPOS</TCON_CODE> <TIND_CODE>2664</TIND_CODE> <TIND_DESC>CBC BANQUE NAMUR SUCCURSALE</TIND_DESC> <Adresse>AVENUE DE LA PAIRELLE, 33 B3</Adresse> <Localité>5000 NAMUR</Localité> </ROW> </ROWSET>
Attention, un client peux posséder maximum 2 adresses mais être reliés à plusieurs TIND_CODE dans le cas ci-dessus il y a 5 TIND_CODE.
Donc mon code actuel affiche le client suivi de 10 adresses.
Je voudrais qu'il affiche que les adresses qui sont différentes, donc par exemple pour le cas ci-dessus, je voudrais qu'il affiche une fois le client et ensuite les 2 adresses.
Ci-joint mon code actuel
Et voici un exemple de ce que je voudrais avoir en retour
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 <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <HTML> <HEAD> <LINK rel="stylesheet" href='html/mcic/style/CBCinet.css'/> <LINK rel="stylesheet" href='html/mcic/style/mcic.css'/> </HEAD> <BODY onload="parent.frDown.location.href='html/mcic/blank.html';"> <TABLE width="100%" border="0" cellspacing='0'> <TR> <TD> <xsl:apply-templates select="ROWSET/ROW"/> </TD> </TR> </TABLE> <!-- Message si aucun ROW n'est détecté--> <xsl:if test= "not(/ROWSET/ROW)"> <BR/> <TABLE border='0' width='100%'> <TR align='center'><TD> <LABEL>Aucun résultat !</LABEL> </TD></TR> </TABLE> </xsl:if> </BODY> </HTML> </xsl:template> <xsl:template match="ROW"> <xsl:variable name="currid"> <xsl:value-of select="Id"/> </xsl:variable> <xsl:variable name="nextid"> <xsl:value-of select="following-sibling::*[1]/Id"/> </xsl:variable> <xsl:variable name="previd"> <xsl:value-of select="preceding-sibling::*[1]/Id"/> </xsl:variable> <xsl:variable name="adr_suppr"> <xsl:value-of select="ADR_SUPPRIMEE"/> </xsl:variable> <xsl:variable name="currad"> <xsl:value-of select="Adresse"/> </xsl:variable> <xsl:variable name="nextad"> <xsl:value-of select="following-sibling::*[1]/Adresse"/> </xsl:variable> <xsl:variable name="prevad"> <xsl:value-of select="preceding-sibling::*[1]/Adresse"/> </xsl:variable> <TABLE border='1' width='100%' bordercolor ='blue' > <xsl:if test="@num = '1' or $previd != $currid or $previd=$currid"> <!-- dans ce cas, on est en début de fiche => on utilise la classe fiche-recherche-top --> <xsl:attribute name="class">fiche-recherche-top</xsl:attribute> </xsl:if> <xsl:if test="$previd=$currid and $nextid = $currid "> <!-- dans ce cas, on est en milieu de fiche => on utilise la classe fiche-recherche-middle --> <xsl:attribute name="class">fiche-recherche-middle</xsl:attribute> </xsl:if> <xsl:if test="$nextid != $currid"> <!-- dans ce cas, on est en fin de fiche => on utilise la classe fiche-recherche-bottom --> <xsl:attribute name="class">fiche-recherche-bottom</xsl:attribute> </xsl:if> <!--test si le précédent est le meme ou non--> <xsl:if test="@num = '1' or $previd != $currid"> <THEAD> <TH align='left'> <A target='frCenter' title='Aller à la fiche contact' class='header'> <xsl:attribute name="href">/MCIC/Contact?contid=<xsl:value-of select="Id"/></xsl:attribute> <xsl:value-of select="CONT_PRENOM"/>*<xsl:value-of select="CONT_NOM"/> ( <xsl:value-of select="NUM_CLIENT"/> )<BR/> </A> </TH> </THEAD> </xsl:if> <TBODY> <TR> <TD> <xsl:value-of select="Adresse"/><BR/> </TD> </TR> <TR> <TD> <xsl:value-of select="Localité"/><BR/> </TD> </TR> </TBODY> </TABLE> <xsl:if test="$nextid != $currid"> <BR/> </xsl:if> </xsl:template> </xsl:stylesheet>
Je voudrais donc qu'il affiche une seul fois le nom, là, il n'y a pas de problème, je voudrais qu'il affiche les 2 adresses si elles sont différentes et je voudrais qu'il affiche tout les codes indices en relation avec l'adresse.
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 SOC. & DE SANTE ASBL ASSOC. CHRETIENNE DES INSTITUTIONS ( 4784314 ) AVENUE DE LA PAIRELLE, 33 B3 5000 NAMUR Code indice : 2608 Code indice : 2640 Code indice : 2757 Code indice : 2853 Code indice : 2664 AVENUE DE LA PAIRELLE, 33-34 4 5000 NAMUR Code indice : 2608 Code indice : 2640 Code indice : 2853 Code indice : 2664 Code indice : 2757
Si vous avez une piste, je suis preneur
D'avance merci à tous pour votre aide
Partager