Bonjour à tous
Voici ma source XML:
Et voici ce que je veux en faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <method name="MaMethode"> <field type="int" name="trotinette"/> <field type="float" name="mouton" count="3"/> <field type="char" name="banane" count="2"/> </method>
Il s'agit, vous l'aurez compris, de faire la génération automatique de code en C. J'ai bien réussi à obtenir à peu près le bon résultat avec une <xsl:function/> récursive, mais je trouve ça trop bourrin et j'aimerai bien trouver qqchose de plus élégant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 struct MaMethode { int trotinette; //trotinette_0 est accepté float mouton_0; float mouton_1; float mouton_2; char banane_0; char banane_1; }
J'ai vu qu'avec XPath 2.0 on peut faire des choses genre
Merci d'avance pour toute solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <xsl:for-each select="field"> <xsl:for-each select="for $i in ( 1 to @count )"> <!-- Dans la boucle, je peux récuperer la position courant avec position(), mais du coup je n'ai plus accès aux attributs de mon noeud car la séquence que j'ai construite avec le 'for' ne les contient pas --> </xsl:for-each> </xsl:for-each>
PS : question subsidiaire, en XPath 2.0, "@count" quand 'count' n'existe pas s'évalue t'il à un booleen 'false', à un entier '0' ou à une chaine vide "" ? Ou tout cela en même temps ? Je crois que je ne suis pas encore au point sur le typage XSLT/XPath
Partager