Bonjour,
J'ai un gros problème 'a résoudre et j'aimerais etre sure de me lancer dans la bonne voie.
J'ai deux fichiers xml.
Le premier d'entre eux se presente comme ceci:
Il y a une quantite astronomique de balises differentes, en fait elles ne sont que tres peu repetees dans le document pour la bonne raison qu'une balise est en fait une information.
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 <balise0> <balise1> <balise2> <balise3>opopop</balise3> <balise3>gnagnagna</balise3> </balise2> <balise4> <balise1>blablabla</balise1> <balise5>didadidadou</balise5> </balise4> <balise6> <balise7> <balise1>pfioupioupiou</balise1> </balise7> </balise6> </balise1> </balise0>
En fait, chaque balise a un "type", elle est soit un segment, soit un groupe, soit un composite, soit une data, et le document est forme comme ceci:
(c'est le m^eme document que le premier exemple)
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 <groupe> <groupe> <segment> <data>opopop</data> <data>gnagnagna</data> </segment> <segment> <data>blablabla</data> <data>didadidadou</data> </segment> <segment> <composite> <data>pfioupioupiou</data> </composite> </segment> </groupe> </groupe>
On a donc toujours la meme structure:
(n)groupe -> 1 segment -> (n)composite -> 1 data.
Je dois trouver une maniere de representer cette information, je dois pour cela savoir pour chaque balise si c'est un segment, un composite, un groupe.
Je sais cela grace au 2eme document XML qui se presente comme ceci:
Ce document nous dit:
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 <GROUPS> <GROUP ID="532421" SMARTNAME="balise1" DESCRIPTI... infos diverses concernant la balise, qu'il va falloir integrer dans le HTML final> <SEGMENTREF ID="52452" SMARTNAME="balise1" DESCRIPTI... infos diverses qu'il va falloir integrer dans le HTML final> <GROUP ID="676144" SMARTNAME="balise1" DESCRIPTI... infos diverses qu'il va falloir integrer dans le HTML final> <SEGMENTREF ID="5445" SMARTNAME="balise1" DESCRIPTI... infos diverses qu'il va falloir integrer dans le HTML final> </GROUP> </GROUP> </GROUPS> <SEGMENTS> <SEGMENT ID="241254" SMARTNAME="balise1" DESCRIPTI... infos diverses qu'il va falloir integrer dans le HTML final> <COMPOSITEREF ID="25454" SMARTNAME="balise1" DESCRIPTI... infos diverses qu'il va falloir integrer dans le HTML final> <DATA ID="245005" SMARTNAME="balise1" DESCRIPTI... infos diverses qu'il va falloir integrer dans le HTML final> <CODESETS> <CODESET TAG="pfioupioupiou" DESCRIPTION="explication de la valeur de la data"/> <CODESET TAG="blablabla" DESCRIPTION="explication de la valeur de la data"/> <CODESET TAG="opopop" DESCRIPTION="explication de la valeur de la data"/> </CODESETS> </DATA> </SEGMENT> </SEGMENTS> <COMPOSITES> <COMPOSITE ID="8637" SMARTNAME="balise1" DESCRIPTI... infos diverses qu'il va falloir integrer dans le HTML final> <DATA ID="23574254" SMARTNAME="balise1" DESCRIPTI... infos diverses qu'il va falloir integrer dans le HTML final> <CODESETS> <CODESET TAG="didadidadou" DESCRIPTION="explication de la valeur de la data"/> </CODESETS> </DATA> </COMPOSITES>
- de quel "type" est chaque balise du document 1 (la balise correspond au type de la balise du document 1, smartname correspond au nom de la balise du document 1)
- les informations correspondantes aux noms des balises
- la traduction des valeurs ("pfioupioupiou", "opopop", "gnagnagna"... cette traduction est contenue dans CODSET)
Voila, en gros, mon travail. Il va donc falloir que je combine les deux documents. Le rendu sera une page HTML avec la m^eme structure que le premier document, et avec les informations contenues dans le deuxieme document.
Je pensais donc mettre les informations du document 2 dans un tableau ou on aurait:
nom de la balise | type de balise | description
Puis dans un second temps integrer cela 'a la presentation HTML faite grace 'a XSLT.
En fait une fois que j'aurai le tableau "nom de la balise | type de balise | description" je pourrai peut etre parser le contenu du document 1 pour obtenir par exemple:
Ce qui sera plus facile 'a presenter en HTML
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 <groupe VALUE="balise0" DESCRIPTION= ...........> <groupe VALUE="balise1" DESCRIPTION= ...........> <segment VALUE="balise2" DESCRIPTION= ...........> <data VALUE="balise3" DESCRIPTION= ...........>opopop</data> <data VALUE="balise3" DESCRIPTION= ...........>gnagnagna</data> </segment> <segment> <data VALUE="balise1" DESCRIPTION= ...........>blablabla</data> <data VALUE="balise5" DESCRIPTION= ...........>didadidadou</data> </segment> <segment> <composite VALUE="balise7" DESCRIPTION= ...........> <data VALUE="balise1" DESCRIPTION= ...........>pfioupioupiou</data> </composite> </segment> </groupe> </groupe>
Cela (la recuperation du contenu du document2 dans un tableau) est faisable avec DOM par exemple, n'est ce pas? Ou simpleXML, sans doute plus simple... Est ce que vous me conseillez une technologie particuliere? Est ce que ma maniere de proceder vous semble correcte?
(ne connaissant pas encore grand chose de tout cela, meme si je me renseigne depuis une semaine, je fais appel 'a des experts!)
J'espere que vous aurez 'a peu pres compris mon probleme,
Un enorme merci d'avance!
Partager