Je sèche littéralement, je crois que c'est que code XSLT que je dois
implémenter dans mon code XSLT, mais je n'y arrive pas. Est ce que quelqu'un
pourrait m'aider s'il vous plait. Merci pour vos réponses.
LE CODE XSLT SUM OF PROUCTS:
<xsl:template name="prod-sum">
<xsl:param name="sum">0</xsl:param>
<xsl:param name="nodes" />
<xsl:choose>
<xsl:when test="$nodes">
<xsl:call-template name="prod-sum">
<xsl:with-param name="sum"
select="$sum + number($nodes[1]/a) * number($nodes[1]/b)" />
<xsl:with-param name="nodes" select="$nodes[position()!=1]" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$sum" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
MON CODE XSLT:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="TEACHING/ETUDIANT">
<xsl:variable name="student3" select="@ident"/>
<xsl:variable name="course3" select="@note"/>
<xsl:if test="$student3=1 and $course3=1">
<xsl:variable name="sumnote" select="../NOTE[@etudiant=$student3]/SCORE"/>
<xsl:variable name="sumcoef" select="../COEFFICIENT[@note]/VALEUR"/>
<xsl:variable name="result" select="sum($sumnote*$sumcoef) div
sum($sumcoef)"/>
<xsl:value-of select="$result" />
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
>From: "Jarod Delaware" <delaware_jarod@hotmail.com>
>Reply-To: xml-tech@xmlfr.org
>To: xml-tech@xmlfr.org
>Subject: [xml-tech] Re: moyenne des notes: sum($x*$y)
>Date: Fri, 13 Jan 2006 13:07:27 +0000
>
>Bonjour,
>Merci beaucoup pour votre aide. Par contre, j'ai regardé sur le lien que
>vous m'avez marqué mais j'ai pas très bien compris comment adapter
>l'exemple
>donné à mon problème, étant débutant en xml.
>Est ce que vous pouvez m'éclairer, s'il vous plaît. Encore merci pour vos
>réponses.
>
>
> >From: Jean-Christophe Kermagoret <jck@bluexml.org>
> >Reply-To: xml-tech@xmlfr.org
> >To: xml-tech@xmlfr.org
> >Subject: [xml-tech] Re: moyenne des notes: sum($x*$y)
> >Date: Thu, 12 Jan 2006 22:52:58 +0100
> >
> >Bonjour,
> >la fonction number ne permet pas de faire la somme d'un ensemble de
> >noeud, mais de considérer le noeud comme un entier, un cast en quelque
> >sorte.
> >
> >Pour faire une somme, il faut faire la somme des éléments deux à deux...
> >comme cela est expliqué ici, où vous trouverez beaucoup d'information :
> >
> >http://www.dpawson.co.uk/xsl/sect2/N5121.html#d6085e562
> >
> >Jean-Christophe
> >
> >Jarod Delaware a écrit :
> > > Bonjour,
> > > j'ai essayé vos deux solutions, ie:
> > > select="number(../NOTE[@etudiant=1]/SCORE)) et également:
> > > select="number(string(...))"
> > > mais ça me donne rien, toujours la même erreur the value is not a node
> >set.
> > >
> > >
> > >
> > >>From: hufflen@lifc.univ-fcomte.fr (hufflen jean-michel)
> > >>Reply-To: xml-tech@xmlfr.org
> > >>To: xml-tech@xmlfr.org
> > >>Subject: [xml-tech] Re: moyenne des notes: sum($x*$y)
> > >>Date: Thu, 12 Jan 2006 19:33:52 +0100 (CET)
> > >>
> > >>>From xml-tech-bounce@xmlfr.org Thu Jan 12 19:21:22 2006
> > >>
> > >>>(...)
> > >>
> > >>>Bonjour,
> > >>>J'aimerais savoir comment calculer la moyenne d'un étudiant sachant
>que
> > >>>chaque note à un coefficient. J'ai essayé d'écrire quelques choses en
> > >>
> > >>XSLT
> > >>
> > >>>mais ça me donne rien, si ce n'est une erreur du type :the value is
>not
> >a
> > >>>node-set.
> > >>>Je met ci-dessous mon code XML et mon code XSLT:
> > >>
> > >>>(...)
> > >>
> > >> A premiere vue...
> > >>
> > >>
> > >>><xsl:variable name="sumnote"
> > >>
> > >>select="../NOTE[@etudiant=$student3]/SCORE"/>
> > >>
> > >>><xsl:variable name="sumcoef" select="../COEFFICIENT[@note]/VALEUR"/>
> > >>
> > >> je n'ai pas essaye mais je pense qu'il faut utiliser ici
> > >>
> > >>select="number(../NOTE...)"
> > >>
> > >> et meme chose a la ligne suivante. Peut-etre faut-il meme preciser
> > >>"number(string(...))".
> > >>
> > >>
> > >> Hope this helps,
> > >>
> > >> J.-M. H.
> > >>
> > >>--
> > >>Devenez redacteur <XML>fr et contribuez au developpement du
> > >>xml francophone (http://xmlfr.org/infos/redacteurs/) !
> > >>
> > >>Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
> > >>
> > >>Cette liste est a votre disposition pour discuter en francais de
> > >>tout sujet technique lie a XML.
> > >>
> > >>Pour resilier votre abonnement, envoyez un message contenant
> > >>la commande "unsubscribe" a xml-tech-request@xmlfr.org
> > >>(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
> > >>
> > >
> > >
> > > _________________________________________________________________
> > > MSN Hotmail : créez votre adresse e-mail gratuite & à vie !
> > > http://www.msn.fr/newhotmail/Default.asp?Ath=f
> > >
> > >
> > > --
> > > Devenez redacteur <XML>fr et contribuez au developpement du
> > > xml francophone (http://xmlfr.org/infos/redacteurs/) !
> > >
> > > Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
> > >
> > > Cette liste est a votre disposition pour discuter en francais de
> > > tout sujet technique lie a XML.
> > >
> > > Pour resilier votre abonnement, envoyez un message contenant
> > > la commande "unsubscribe" a xml-tech-request@xmlfr.org
> > > (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
> > >
> >
> >
> >--
> >
> >BlueXML
> >Jean-Christophe Kermagoret
> >Directeur associé
> >jck@bluexml.org
> >
> >
> >--
> >Devenez redacteur <XML>fr et contribuez au developpement du
> >xml francophone (http://xmlfr.org/infos/redacteurs/) !
> >
> >Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
> >
> >Cette liste est a votre disposition pour discuter en francais de
> >tout sujet technique lie a XML.
> >
> >Pour resilier votre abonnement, envoyez un message contenant
> >la commande "unsubscribe" a xml-tech-request@xmlfr.org
> >(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
> >
>
>_________________________________________________________________
>MSN Hotmail : créez votre adresse e-mail gratuite & à vie !
>http://www.msn.fr/newhotmail/Default.asp?Ath=f
>
>
>--
>Devenez redacteur <XML>fr et contribuez au developpement du
>xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
>Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
>Cette liste est a votre disposition pour discuter en francais de
>tout sujet technique lie a XML.
>
>Pour resilier votre abonnement, envoyez un message contenant
>la commande "unsubscribe" a xml-tech-request@xmlfr.org
>(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
>
_________________________________________________________________
MSN Messenger : discutez en direct avec vos amis !
http://www.msn.fr/msger/default.asp
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Sat Jan 14 10:14:53 2006