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-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.