-
for-each et condition
Hello,
dans mon xml j'ai des tag "base_calcul" et des éléments "rente" qui y font référence du genre :
<base_calcul>
<id>1</id>
...
</base_calcul>
<base_calcul>
<id>2</id>
...
</base_calcul>
et
<rente>
<base>1<base>
...
</rente>
J'aimerai faire une boucle for-each sur toutes les <base_calcul> qui ont des tags <rente> leur faisant référence (donc un élément <base_calcul> avec un id correspondant à la valeur qu'on trouve dans le tag <base> d'un élément <rente> existant). Avec mon exemple ci-dessus la boucle ne prendrait que le premier élément <base_calcul> mais pas le deuxième puisque aucun élément <rente> n'a comme base 2.
En gros je voudrai, dans l'exemple ci-dessous pouvoir me passer du if qui serait en quelque sorte déjà "inclus" dans le for
<xsl:for-each select="../bases_calcul">
<xsl:variable name="id_base" select="./id">
<xsl:if test="../rente [./base=$id_base]">
...
</xsl:if>
</xsl:for-each>
Si quelqu'un a une idée je lui en serai très reconnaissant :roll:
Merci !
casp
-
Hello,
Ben, tu as déjà pensé à faire un rente [base=quelquechose].
À première vue il suffit simplement de faire l'inverse, non ?
Code:
<xsl:for-each select="../bases_calcul[id = quelquechose]">
-
Merci pour ta réponse. Malheureusement je ne comprends pas bien comment faire malgré tout. J'aimerai que ma boucle for traite tous les éléments <base_calcul> qui ont un élément <rente> qui leur fait référence (tag <id> et tag <base> identique) mais sans avoir a spécifier un id particulier. Si une base_calcul n'a pas de rente qui lui fait référence je n'aimerai pas traiter cette base_calcul dans ma boucle for.
Dans mon exemple entre le for et le if je récupère l'id de la base de calcul dans une variable mais je ne sais vois pas comment faire tout ça dans le for.
Dans ton exemple j'ai l'impression que je vais devoir remplacer ton "quelquechose" par une valeur et que donc ma boucle ne traitera que une seule base_calcul qui aura l'id=quelquechose alors qu'en réalité je pourrai être amenée à traiter 10 bases_calcul avec 10 id différent si pour chacune il existe aussi un élément <rente> avec le tag <base> identique à l'id.
En gros ce que je voudrai faire c'est
for_each ../base_calcul pour laquelle il existe un tag ../rente avec ../base_calcul/id = ../rente/base
Mais je ne sais pas écrire ça en xsl et je ne sais même pas si c'est possible.
-
Impression non vérifiée...
Et si je te disais ça :
Code:
../bases_calcul[id = ../rente/autrechose]
?
-
ça a l'air de fonctionner, j'y avais pas pensé.
Merci beaucoup pour ton aide !
Casp