Bonjour,
C'est clair votre solution marche nickel mais bon si c'est lourd...
Je pense que je vais generer un fichier du style
<liste>
<auteur>Auteur 1</auteur>
<auteur>Auteur 2</auteur>
...
</liste>
qui sera updater a chaque mise à jour. A l'affichage, je me filtreré les
doublons ou sinon je regenererais le fichier filtré.
Je vais essayer de voir comment on fait cela... car j'en ai pas la moindre
idée.
Qu'en pensez vous ?
> Le lundi 06 février 2006 à 18:33 +0100, greg@gregserveur.com a écrit :
>> Je préfere bien preciser car j'ai pas envie de partir dans un truc qui
>> n'est pa necessaire.
> Je comprend cela :-) ...
>
> Ce que vous cherchez à faire sort du cadre XSLT pur et c'est un domaine
> où une base de données XML semblerait toute indiquée (c'est leur
> vocation)!
>
>> Les articles sont assez "volumineux", c'est des articles scientifiques
>> et
>> il risque d'y en avoir pas mal avec le temps. C'est pour ca qu'on a
>> preferé crer plusieurs fichiers separés. De plus ca sera plus simple
>> pour
>> les mises à jour. Les articles ont été balisés afin de respecter une
>> ontologie. (Realisé par des chercheurs de la facultés)
>
> Certes, mais il faut bien comprendre que dès que vous utilisez la
> fonction document() vous lisez l'ensemble du document concerné et que
> pour faire votre tri vous devrez donc lire l'ensemble des documents à
> chaque accès. Cela risque de devenir très long quand vous aurez pas mal
> d'articles volumineux.
>
>> Ce que je comprend pas c'est pourquoi on arrive a trier l'ensemble des
>> titres de tous les articles (chaques titres est dans un fichier separé)
>> et
>> pourquoi on peut pas effectuer un filtrage de doublons.
>
> Le tri a été possible en utilisant une fonctionnalité de la fonction
> document() http://xmlfr.org/w3c/TR/xslt/#document.
>
> Pour le filtrage des doublons, il faut utiliser soit des clés, soit la
> fonction position(), soit l'axe preceding (ou preceding-sibling) et ces
> fonctionnalités sont restreintes au cadre d'un document ce qui complique
> les choses.
>
> Il doit y avoir moyen de contourner cela en restant dans le document
> "liste" le plus longtemps possible pour pouvoir utiliser soit ces
> fonctionnalités, par exemple :
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0">
> <xsl:key name="auteur" match="fichier"
> use="document(.)/ARTICLE/id/@auteur"/>
> <xsl:variable name="liste" select="/"/>
> <xsl:template match="/">
> <html>
> <head>
> <title>Liste par auteur</title>
> </head>
> <body>
> <xsl:apply-templates select="/liste/fichier[count( . |
> key( 'auteur',
> document(.)/ARTICLE/id/@auteur )[1] ) = 1]">
> <xsl:sort select="document(.)/ARTICLE/id/@auteur"/>
> </xsl:apply-templates>
> </body>
> </html>
> </xsl:template>
> <xsl:template match="fichier">
> <h1>
> <xsl:value-of select="document(.)/ARTICLE/id/@auteur"/>
> </h1>
> </xsl:template>
> </xsl:stylesheet>
>
> Par contre, les performances risquent de se dégrader assez vite au fur
> et à mesure que vous rajouterez de gros documents.
>
>
>> En tout cas, ca devient le bordel pour les doublons. Car encore les
>> auteurs ca va. Ca m'inquite...Mais les concepts c'est deja plus
>> emmerdants
>> mais aprés c'est dans le moteur de recherche. Car il peux y avoir
>> plusieurs resultats dans un même fichiers a des positions differentes...
>> Il faut pas qu'un article apparaissent 2 fois des les resultats. Au
>> maximum, dans le moteur de recherche il y aura x resultats : x etant le
>> nombre d'articles referenciés.
>>
>> Quoique en reflechissant, on peut tres bien rien faire lorsque on
>> rencontre un resultat et juste mettre à jour la pertinence. Il y aura
>> donc
>> autant de variable pertiance que de resultat... Comment on peux gérer ça
>> ?
>>
>> On generera donc un structure avec les pertinance.. et on trira comme on
>> en a discué dans un message précédent.
>>
>> D'ailleurs, peut-on créer et utiliser une structure dans un même fichier
>> XSL ?
>>
> Avec une extension, oui.
>
>> C'est nécessaire de créer le fichier ?
>
> Oui et non, créer le fichier et ne le modifier que lorsque l'on ajoute
> un article permet d'éviter de le créer à chaque requête.
>
> C'est comme cela que fonctionne le site XMLfr...
>
> Ceci dit, compte tenu des fonctions que vous voulez développer, une base
> de données (XML ou SQL) semblerait bienvenue!
>
> Cordialement,
>
> Eric van der Vlist
>
> --
> GPG-PGP: 2A528005
> If you have a XML document, you have its schema.
> http://examplotron.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)
>
> iD8DBQBD55vCDvn+ZCpSgAURAs7qAKCkXau1c7B1OlhPUzKxskgae/jrMQCfXaok
> Y4MAxgKMhPELtd/42gpg08A=
> =FNsu
> -----END PGP SIGNATURE-----
>
>
> --
> 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)
>
>
--
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 Tue Feb 7 10:03:14 2006