Re: Variables dans document()
Eric van der Vlist <[email protected]>
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Organization | Dyomedea (http://dyomedea.com) |
| Message-ID | <[email protected]> |
Le jeudi 23 février 2006 à 14:02 +0100, [email protected] a écrit : > Merci, bon j'ai bien reussi. > > J'arrive a recuperer les mots cléfs. Cependant, pour chacun des mots cléfs > de l'article d'origine, il faudrait que je les conpare avec chacun des > mots clefs de tous les articles : > > Je suis arrivé a ca : > > <xsl:param name="article_origine"/> > > <xsl:template match="liste"> > <xsl:for-each select="document($article_origine)/ARTICLE/motclefs//mot"> > <p><b>Pour le mot : <xsl:value-of select="." /></b></p> > > <xsl:variable name="mot"> > <xsl:value-of select="."/> > </xsl:variable> > > <xsl:apply-templates select="theme/fichier"> > <xsl:with-param name="mot_en_cours" select="$mot"/> > </xsl:apply-templates> > > </xsl:for-each> > </xsl:template> > > <xsl:template match="fichier"> > <xsl:param name="mot_en_cours"/> > <xsl:apply-templates select="document(.)/ARTICLE/motclefs//mot"> > <xsl:with-param name="mot_en_cours" select="$mot"/> > </xsl:apply-templates> > </xsl:template> > > <xsl:template match="mot"> > <p><xsl:value-of select="mot" /></p> > </xsl:template> > > Mais ca fonctionne pas, j'arrive pas a lister les mots clefs de l'article > en cours (dernier template match), il doit y avoir un problème de passage > de parametres. Une idée ? Il semble y avoir erreur dans votre nom de paramètre? <xsl:template match="fichier"> <xsl:param name="mot_en_cours"/> <xsl:apply-templates select="document(.)/ARTICLE/motclefs//mot"> <xsl:with-param name="mot_en_cours" select="$mot_en_cours"/> </xsl:apply-templates> </xsl:template> Mais le point qui coince est sans doute que xsl:for-each (comme xsl:apply-templates) change le noeud contexte. Quand vous écrivez : <xsl:template match="liste"> <xsl:for-each select="document($article_origine)/ARTICLE/motclefs//mot"> à ce niveau, vous avez changé de document et plus loin quand vous écrivez : <xsl:apply-templates select="theme/fichier"> <xsl:with-param name="mot_en_cours" select="$mot"/> </xsl:apply-templates> vous cherchez à accéder à un "theme/fichier" qui serait inclus non pas comme vous l'espérez dans le document que vous venez de quitter mais sous l'élément courant (mot). Cordialement, Eric van der Vlist > -- GPG-PGP: 2A528005 Did you know it? Python has now a Relax NG (partial) implementation. http://advogato.org/proj/xvif/ ------------------------------------------------------------------------ Eric van der Vlist http://xmlfr.org http://dyomedea.com (ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax (W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema ------------------------------------------------------------------------ -- Attached file included as plaintext by Ecartis -- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQBD/bUcDvn+ZCpSgAURAss4AKCBqh1uJuHHJLFZ+B14h1qa+OQL6gCgjq7E Ly8SG/BHvw5iHUByGbrmnCs= =+wSK -----END PGP SIGNATURE-----