Filtre et regroupement selon balise [XSL] - XML/XSL - Programmation
MarshPosté le 13-12-2010 à 12:41:15
Bonjour à tous
J'ai un problème sur lequel je me casse la tête depuis un moment déjà... J'ai le XML suivant fourni par un site ( donc que je ne peux pas modifier ) :
Code :
<?xml version="1.0" encoding="UTF-8" ?>
<liste>
<fournisseur name="toto">
<loisir name="loisir1">
<description>bla bla bla</description>
</loisir>
<loisir name="loisir2">
<description>bla bla bla</description>
</loisir>
<loisir name="loisir3">
<description>bla bla bla</description>
</loisir>
<service name="service1">
<description>bla bla bla</description>
</service>
<service name="service2">
<description>bla bla bla</description>
</service>
</fournisseur>
<fournisseur name="titi">
<loisir name="loisir1">
<description>bla bla bla</description>
</loisir>
<loisir name="loisir4">
<description>bla bla bla</description>
</loisir>
<service name="service5">
<description>bla bla bla</description>
</service>
<service name="service6">
<description>bla bla bla</description>
</service>
</fournisseur>
....
</liste>
Il doit être converti au format suivant :
Code :
<?xml version="1.0" encoding="UTF-8" ?>
<liste>
<fournisseur name="toto">
<sports>
<sport name="loisir1">
<description>bla bla bla</description>
</sport>
<sport name="loisir3">
<description>bla bla bla</description>
</sport>
</sports>
<animations>
<animation name="loisir2">
<description>bla bla bla</description>
</animation>
</animations>
<services>
<service name="service1">
<description>bla bla bla</description>
</service>
</services>
</fournisseur>
<fournisseur name="titi">
<sports>
<sport name="loisir1">
<description>bla bla bla</description>
</sport>
</sports>
<services>
<service name="service5">
<description>bla bla bla</description>
</service>
<service name="service6">
<description>bla bla bla</description>
</service>
</services>
</fournisseur>
...
</liste>
En gros, j'ai un fichier XSL qui fait des correspondances ( avec des xsl:if ) pour savoir quel loisir est un sport ou une animation. Il me précise aussi lesquels je dois sélectionner parmi les loisirs et services dans le nouveau XML, car tout ne va pas forcément dans le nouveau XML. Et souvent le nom du service ou du loisir change. On peut ainsi avoir un fournisseur avec des loisirs et des services dans le premier xml, et juste des services dans le second xml...
J'arrive actuellement à faire ce tri selon les balises avec le XSL suivant, mais le problème est que j'obtiens le XML que je mets plus bas, et donc les balises <sports> <animations> et <services> sont dupliquées, ce qui ne devrait pas être le cas ! Je devrais regrouper tous les sports dans <sports>, toutes les animations dans <animations>, pareil pour les services, mais vu que le XML original ne suit aucun ordre, c'est très difficile... J'ai entendu parler de la méthode de Muench mais je ne vois pas comment l'appliquer à un regroupement par noms de balises...
Marsh Posté le 13-12-2010 à 12:41:15
Bonjour à tous
J'ai un problème sur lequel je me casse la tête depuis un moment déjà...
J'ai le XML suivant fourni par un site ( donc que je ne peux pas modifier ) :
Il doit être converti au format suivant :
En gros, j'ai un fichier XSL qui fait des correspondances ( avec des xsl:if ) pour savoir quel loisir est un sport ou une animation. Il me précise aussi lesquels je dois sélectionner parmi les loisirs et services dans le nouveau XML, car tout ne va pas forcément dans le nouveau XML. Et souvent le nom du service ou du loisir change.
On peut ainsi avoir un fournisseur avec des loisirs et des services dans le premier xml, et juste des services dans le second xml...
J'arrive actuellement à faire ce tri selon les balises avec le XSL suivant, mais le problème est que j'obtiens le XML que je mets plus bas, et donc les balises <sports> <animations> et <services> sont dupliquées, ce qui ne devrait pas être le cas !
Je devrais regrouper tous les sports dans <sports>, toutes les animations dans <animations>, pareil pour les services, mais vu que le XML original ne suit aucun ordre, c'est très difficile...
J'ai entendu parler de la méthode de Muench mais je ne vois pas comment l'appliquer à un regroupement par noms de balises...
Le XSL que j'appelle
Et ce que j'obtiens ( donc mal trié ) :
Merci d'avance pour votre aide !
Message édité par DaSayan le 13-12-2010 à 12:43:34