Je rencontre des problèmes pour trouver un moyen de regrouper les éléments xslt 1.0. J'ai un xml source similaire à celui ci-dessous:Regroupement tous les 3 éléments dans xslt 1.0
<client name="client A">
<project name = "project A1"/>
<project name = "project A2"/>
<project name = "project A3"/>
<project name = "project A4"/>
</client>
<client name="client B">
<project name = "project B1"/>
<project name = "project B2"/>
</client>
<client name="client C">
<project name = "project C1"/>
<project name = "project C2"/>
<project name = "project C3"/>
</client>
J'aimerais sélectionner tous les projets, les trier, puis groupe chaque projet 3 dans un boundle comme dans l'exemple ci-dessous:
<boundle>
<project name="project A1">
<project name="project A2">
<project name="project A3">
</boundle>
<boundle>
<project name="project A4">
<project name="project B1">
<project name="project B2">
</boundle>
<boundle>
<project name="project C1">
<project name="project C2">
<project name="project C3">
</boundle>
Pour le moment, j'utilise pour ouvrir une étiquette de liaison et la fermer plus tard. Pouvez-vous penser à une meilleure solution?
J'aime cette solution, car elle évite les répétitions. Je me demande si cela pourrait être plus simple, puisque maintenant vous bouclez tous les projets, et pour chaque troisième projet, copiez les trois derniers projets, au lieu de copier un projet en premier lieu et mettez simplement les limites autour d'eux ... – OregonGhost
Cela ne peut pas être fait beaucoup plus simple. Vous pouvez faire '' en échange, mais en termes de traitement c'est à peu près la même chose . Aussi, la façon dont je l'ai fait, le modèle '' est autonome. En ce qui concerne l'utilisation potentielle d'une clé XSL: puisqu'il n'y a pas de gamme consécutive de projets, 'position() mod x' ne produira pas les résultats désirés. En dehors de cela, ce qui précède est paramétré, une clé XSL devrait être codée en dur. –
Tomalak
est vrai. En faisant fonctionner ma solution (maintenant supprimée), elle devient désespérément complexe traitant de différents cas de bord où le 2ème ou le 3ème projet dans un paquet se déplace dans le suivant, ou le suivant plus un des nœuds de client. – Richard