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 à 15:32 +0100, [email protected] a écrit : 
> En fait, "Pour le mot..." c'est simplement pour m'aider a debugguer...
> 
> Tout ce que je veux, c'est une liste de fichier en fait, peut importe le mot.
Dans ce cas, essayez la dernière solution que je propose. Je ne l'ai pas
testé et elle peut contenir des erreurs, mais le principe devrait
fonctionner.

Notez que je suis toujours très réservé sur le résultat que cela va
donner en terme de temps de réponse quand vous aurez "pas mal de gros
documents"!

> En reprenant l'exemple que j'ai donné : Le script doit me retourner
> uniquement le fichier article_2.xml une seule fois. C'est tout. Peu
> importe les mots clefs :D Apres si je peux trier lesfichiers selon le plus
> de mots clefs commun ca serait le top mais sinon c'est pas grave.

Il faut rajouter un xsl:sort :

<xsl:template match="liste">
        <xsl:for-each select="theme/fichier[document(.)/ARTICLE/motclefs//mot = document($article_origine)/ARTICLE/motclefs//mot">
                <xsl:sort select="count(document(.)/ARTICLE/motclefs//mot[.=document($article_origine)/ARTICLE/motclefs//mot])" order="descendi"/>
                <p><font color="#FF0000"><b><xsl:value-of select="."/></b></p>
        </xsl:for-each>
</xsl:template>

> > Le jeudi 23 février 2006 à 15:15 +0100, [email protected] a écrit :
> >> OKI Parfait, ca marche nickel.
> >>
> >> Cependant j'ai un petit soucis.
> >>
> >> Imaginons : J'ai 2 fichiers article_1.xml et article_2.xml
> >>
> >> article_1.xml possède les mot clefs suivant : a,b,c
> >> article_2.xml possède les mots clefs suivant : a,b
> >> article_3.xml possède les mots clefs suivant : d
> >>
> >> Je cherche à afficher les articles qui ont des mots clefs en communs
> >> avec
> >> article_1.xml
> >>
> >> J'ai fait cela :
> >>
> >> <xsl:template match="liste">
> >>
> >> 	<xsl:variable name="liste" select="."/>
> >>
> >> 	<xsl:for-each
> >> select="document($article_origine)/ARTICLE/motclefs//mot">
> >> 		<p><font color="#FF0000"><b>Pour le mot : <xsl:value-of select="."
> >> /></b></font></p>
> >>
> >> 		<xsl:apply-templates
> >> select="$liste/theme/fichier[.!=$article_origine]">
> >> 			<xsl:with-param name="mot_en_cours" select="."/>
> >> 		</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[.=$mot_en_cours]">
> >> 		<xsl:with-param name="fichier" select="."/>
> >> 		<xsl:with-param name="titre" select="document(.)/ARTICLE/id"/>
> >> 	</xsl:apply-templates>
> >>
> >> </xsl:template>
> >>
> >> <xsl:template match="mot">
> >> 	<xsl:param name="fichier"/>
> >> 	<xsl:param name="titre"/>
> >> 	<b><xsl:value-of select="$fichier" /></b><br/>
> >> </xsl:template>
> >>
> >> Ca me retourne bien article_2.xml cependant ca me le retourne en double
> >> car ils ont 2 mots en commun.
> >>
> >> Y'a t-il moyen de virer ce double affichage?
> > Vous pouvez raisonner de manière ensembliste et non mot par mot :
> >
> > <xsl:template match="liste">
> >         <xsl:for-each
> > select="theme/fichier[document(.)/ARTICLE/motclefs//mot =
> > document($article_origine)/ARTICLE/motclefs//mot">
> >                 <p><font color="#FF0000"><b><xsl:value-of
> > select="."/></b></p>
> >         </xsl:for-each>
> > </xsl:template>
> >
> > Mais vous n'associez plus un fichier commun à un mot clé et j'avais
> > l'impression que c'était ce que vous vouliez faire puisque vous
> > affichiez "pour le mot... suivi d'une liste de fichiers".
> >
> > Cordialement,
> >
> > Eric van der Vlist
> > --
> > GPG-PGP: 2A528005
> > Have you ever thought about unit testing XSLT templates?
> >                                                      http://xsltunit.org
> > ------------------------------------------------------------------------
> > 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/cZFDvn+ZCpSgAURAh2sAKCSDBZf0I84KBLK/EjdG3aFf3f7WACeMB+x
> > TBWXhFE1gHkrwW5qM7uZRqs=
> > =xqCN
> > -----END PGP SIGNATURE-----
> >
> >
> > --
> > Devenez redacteur <XML>fr et contribuez au developpement du
> > xml francophone (http://xmlfr.org/infos/redacteurs/) !
> >
> > Liste de diffusion "[email protected]" (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 [email protected]
> > (mailto:[email protected]?Subject=unsubscribe)
> >
> >
> 
> 
> 
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
> 
> Liste de diffusion "[email protected]" (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 [email protected]
> (mailto:[email protected]?Subject=unsubscribe)
> 
> 
-- 
GPG-PGP: 2A528005
Le premier annuaire des apiculteurs 100% XML!
                                                http://apiculteurs.info/
------------------------------------------------------------------------
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/csWDvn+ZCpSgAURAs8kAJ9FsvHY/Aq1QfRyQojNvgJK98TApACdEIpu
M9Zu9hdIcvdAUArAVWsrIzA=
=aW42
-----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.