xslt 1.0 Regroupement de balises dans une balise mères - XML/XSL - Programmation
Marsh Posté le 18-09-2009 à 15:53:50
gg23 a écrit : Bonjour, J'ai deux petits problèmes avec un fichier xml. Le premier c'est que le xml n'a aucune structure car toutes les balises (exception faite de l'élément racine) sont au même niveau. Mon but est d'insérer une balise <toto> qui aurait pour enfant un FM1Titre et toutes les balises qui le suivent jusqu'à la prochaine occurence FM1Titre. |
Récursion des familles. Sinon il faut sélectionner tous les following-sibling::* de chaque FM1Titre et enlever de cette séquence les following::* de son plus proche following-sibling::FM1Titre, mais je ne suis pas certain que ce soit faisable.
gg23 a écrit : Le deuxième problème est que je voudrais reporter le contenu de la balise FM1Titre comme nom de la balise mère que j'ai mentionné au dessus. |
Ça me semble complètement con comme idée. Genre vraiment, ça n'a strictement aucun sens.
gg23 a écrit : moi qui crie à qui veut bien l'entendre qu'on peut tout faire avec xsl. |
je sais pas si on peut tout faire avec XSL, mais je sais que c'est toujours de la merde, je comprend pas comment on puisse aimer (pire, être avocat de) cette merde
Marsh Posté le 21-09-2009 à 10:51:13
Merci beaucoup pour cette réponse. Je ne suis pas sure d'avoir tout saisi. Tanpis je teste. Si toutefois, quelqu'un a autre chose à proposer ... merci d'avance.
Marsh Posté le 18-09-2009 à 15:22:34
Bonjour,
J'ai deux petits problèmes avec un fichier xml.
Le premier c'est que le xml n'a aucune structure car toutes les balises (exception faite de l'élément racine) sont au même niveau. Mon but est d'insérer une balise <toto> qui aurait pour enfant un FM1Titre et toutes les balises qui le suivent jusqu'à la prochaine occurence FM1Titre.
Le deuxième problème est que je voudrais reporter le contenu de la balise FM1Titre comme nom de la balise mère que j'ai mentionné au dessus.
Voici un bout de mon fichier .xml :
<XML>
<FM1Titre>Description </FM1Titre>
<Bloc-paragraphe>La table mère permet de paramétrer les tables. </Bloc-paragraphe>
<Bloc-paragraphe>Toute nouvelle table doit être créée en premier lieu dans la table mère.</Bloc-paragraphe>
<FM1Titre>Détails techniques </FM1Titre>
...</XML>
Ce qu'il faudrait :
<XML>
<Description>
<FM1Titre>Description </FM1Titre>
<Bloc-paragraphe>La table mère permet de paramétrer les tables. </Bloc-paragraphe>
<Bloc-paragraphe>Toute nouvelle table doit être créée en premier lieu dans la table mère.</Bloc-paragraphe>
</Description>
<Détails techniques>
<FM1Titre>Détails techniques </FM1Titre>
</Détails techniques>
...</XML>
Mes recherches sont restées infructueuses (recherches sur internet, solutions proposées sur le forum) et je commence à croire que ça ne peut peut-être pas se faire avec xslt 1.0 (moi qui crie à qui veut bien l'entendre qu'on peut tout faire avec xsl.
Même si ce n'est pas toujours évident de trouver le bon code, c'est la première fois qu'une xslt me résiste, alors si jamais quelqu'un à une solution ou une piste...
Merci d'avance.