J'ai essayé d'obtenir le montant total dépensé par un utilisateur sur des produits mais sans succès. Compte tenu de l'exemple XML suivant, le montant total dépensé par le client serait 21,00 mais je reçois 10,50 (cela se produit uniquement si le client achète plusieurs fois le même produit, s'il achète différents produits le montant retour est prévu le)Avoir des problèmes de somme, xslt 1.0
exemple XML:
<root>
<sale id="1">
<date>2014-01-01</date>
<client>1</client>
</sale>
<sale id="2">
<date>2014-01-02</date>
<client>1</client>
</sale>
<sale_details saleID="1">
<product id="1"/>
</sale_details>
<sale_details saleID="2">
<product id="1"/>
</sale_details>
<product_details productID="1">
<name>product x</name>
<price>10.50</price>
</product_details>
<product_details productID="2">
<name>product x</name>
<price>5.26</price>
</product_details>
<client_detail clientID="1">
<name>client 1</name>
</client_detail>
<client_detail clientID="2">
<name>client 2</name>
</client_detail>
</root>
échantillon XSLT:
<xsl:template name="sum-spent-amount">
<xsl:param name="clientID"/>
<xsl:value-of select="sum(//gv:product_details[@productID=//gv:sale_details[@saleID=//gv:sale[gv:client=$clientID]/@id]/gv:product/@id]/gv:price)"/>
</xsl:template>
Merci à l'avance!
Hey @ michael.hor257k, je vous remercie pour votre réponse rapide. Serait-ce possible sans exsl? – vitor
@vitor Peut-être, mais pourquoi? Je ne connais aucun processeur XSLT 1.0 qui ne supporte pas exsl: node-set(). –
J'ai lu à ce sujet mais c'est pour un projet d'université, je dois utiliser ce qui a été enseigné, j'ai essayé mais je ne peux pas obtenir la bonne solution. – vitor