Re: Variables dans document()
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <[email protected]> |
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. 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. > 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) > >