Bonjour,
Grande débutante des technologies XML, je n'ai pourtant pas froid aux yeux pour directement essayer de créer un formulaire tenant la route avec XForms.
Mon document XML définit 7 Montants sans attribut ni valeur.
Mon document XSLT affiche un tableau avec ces 7 lignes grâce à un <xsl:for-each>
Ce tableau afficher sur chaque ligne un <input> simple XForm.
Mon problème : Je souhaiterais afficher en fin de tableau la somme des chiffres qui seront inscrits dans ces cases.
J'ai trouvé mention d'addition dans le livre XSLT en action (O'reilly) qui me donne deux pages de code que je ne comprends absolument pas, suivi du commentaire suivant :
Comme j'ai l'impression d'être dans un cas de figure "simple" (corrigez-moi si je me trompe... de toute manière j'ai rien compris à la solution "pas simple"), j'ouvre mon autre bouquin "XML en concentré", chapitre XPath à la recherche de sum() :
Vu que j'ai toujours rien compris, et que je ne sais même pas comment utiliser sum(), je continue à fureter sur wikibooks et lance une recherche sur le terme... et voilà que je tombe sur XQuery qui me renvoie sur un exemple XForm que j'avais déjà rencontré.
Que dois-je faire ? J'avoue, je suis complètement larguée...
Je ne cherche pas forcément une solution toute faite, j'aime bien comprendre comment ça marche (ça permet de ré-utiliser ensuite). N'oubliez pas que je suis une débutante (cf: je n'ai rien compris au code ni au blabla de mon bouquin XSLT ni aux morceaux de Wikibooks abordant les additions).
Je vous mets ici les misérables morceaux de mes différents codes.
1- Le morceau de document XML
2- Le XSLT :
Merci énormément par avance,
MeLu-qui-comprend-rien-à-rien
Modifié par MeLu (18 Sep 2007 - 12:07)
Grande débutante des technologies XML, je n'ai pourtant pas froid aux yeux pour directement essayer de créer un formulaire tenant la route avec XForms.
Mon document XML définit 7 Montants sans attribut ni valeur.
Mon document XSLT affiche un tableau avec ces 7 lignes grâce à un <xsl:for-each>
Ce tableau afficher sur chaque ligne un <input> simple XForm.
Mon problème : Je souhaiterais afficher en fin de tableau la somme des chiffres qui seront inscrits dans ces cases.
J'ai trouvé mention d'addition dans le livre XSLT en action (O'reilly) qui me donne deux pages de code que je ne comprends absolument pas, suivi du commentaire suivant :
a écrit :
L'utilisation de la fonction sum() intégrée à XPath est le moyen le plus simple d'effectuer des sommes simples. Cependant, si vous voulez faire la somme des différentes fonctions sur les noeuds d'un ensemble, vous devez soit :
- Utiliser l'une des recettes de cette section ;
- Calculer d'abord la fonction sur les noeuds, réccupérer le résultat dans une variable sous la forme d'un fragment d'arbre résultat, puis utiliser une fonction d'extension pour convertir ce fragment en un ensemble pouvant être passé à sum(). Avec XSLT2.0, les sommes généralisées deviendront triviales par suite de l'abandon des fragments d'arbres résultats.
Comme j'ai l'impression d'être dans un cas de figure "simple" (corrigez-moi si je me trompe... de toute manière j'ai rien compris à la solution "pas simple"), j'ouvre mon autre bouquin "XML en concentré", chapitre XPath à la recherche de sum() :
a écrit :
Signature
number sum(node-set nodes)
Description
La fonction sum() convertir chaque noeud de son argument en nombre, comme par un appel à la fonction number(), ajoute ces nombres et retourne le résultat.
Vu que j'ai toujours rien compris, et que je ne sais même pas comment utiliser sum(), je continue à fureter sur wikibooks et lance une recherche sur le terme... et voilà que je tombe sur XQuery qui me renvoie sur un exemple XForm que j'avais déjà rencontré.
Que dois-je faire ? J'avoue, je suis complètement larguée...
Je ne cherche pas forcément une solution toute faite, j'aime bien comprendre comment ça marche (ça permet de ré-utiliser ensuite). N'oubliez pas que je suis une débutante (cf: je n'ai rien compris au code ni au blabla de mon bouquin XSLT ni aux morceaux de Wikibooks abordant les additions).
Je vous mets ici les misérables morceaux de mes différents codes.
1- Le morceau de document XML
<?xml version="1.0" encoding="ISO-8859-15" standalone="yes"?>
<?xml-stylesheet type="application/xml" href="ecran.xslt"?>
<Remboursement>
[...]
<DétailMontants monnaie="€">
<Montant />
<Montant />
<Montant />
<Montant />
<Montant />
<Montant />
<Montant />
<!-- oui, pas beau, je sais, j'ai pas compris comment répéter un truc N fois dans XSLT non plus -->
[...]
</DétailMontants>
[...]
</Remboursement>
2- Le XSLT :
<table>
<tr>
<td>Objet</td>
<td>Montant</td>
</tr>
<xsl:for-each select="Remboursement/DétailMontants/Montant">
<tr>
<td><xf:input><xf:label></xf:label></xf:input></td>
<td><xf:input><xf:label></xf:label></xf:input></td>
</tr>
</xsl:for-each>
<tr>
<td>Total</td>
<td></td>
</tr>
</table>
Merci énormément par avance,
MeLu-qui-comprend-rien-à-rien
Modifié par MeLu (18 Sep 2007 - 12:07)