From: Eric van der Vlist (vdv@dyomedea.com)
Date: 27/02/2001 - 12:36
ANDRE Gilles wrote:
>
> question bête peut-être...
>
> j'ai un fichier xml :
> <root>
> <item>
> ...
> <ref>nom_de_ref</ref>
> </item>
> ...
> </root>
>
> et un autre :
> <root>
> <item id="nom_de_ref">
> <val>valeur_visee</val>
> ...
> </item>
> ...
> </root>
>
> Dans un tableau généré en xsl à partir du premier fichier xml, je souhaite
> introduire le champ "valeur_visee" du 2e fichier, référencée par le biais du
> champ "nom_de_ref" ; autrement dit, je souhaite y mettre, parmi les valeur
> du 1er item du 1er fichier, la valeur <val> de l'item du 2e fichier dont
> l'id est "nom_de_ref"...
>
> comment faire ?
Il y a deux manières classiques de faire cela:
1) document() + XPath:
Depuis l'élément item de votre premier document, vous pouvez accéder à
l'élement item correspondand grace au chemin:
document(deux.xml)/root/item[@id=current()/ref]
2) document() + id()
Si votre attribut id est déclaré dans la DTD du deuxième document comme
étant de type ID, vous pouvez également écrire:
<xsl:variable name="ref" select="ref"/>
<xsl:for-each select="document(deux.xml)">
... select="id($ref)"
</xsl:for-each>
Le for-each est nécessaire pour déplacer le noeud contexte dans le
deuxième document, puisque la fonction id accède toujours au document en
cours et la variable nécessaire pour mémoriser la référence puisque l'on
va changer de noeud contexte.
Cette deuxième solution, plus verbeuse que la première lorsque l'on
change accède à une référence située dans un deuxième document, devrait
être plus rapide, la notion d'id permettant de cour-circuiter la
recherche XPath.
Vous pourrez trouver des exemples de liens dans un article (en anglais)
à propos de la gestion des liens en XML:
http://www.xml.com/pub/a/2000/10/04/linking/index.html
Cordialement,
Eric van der Vlist
> merci !!
> Gilles
>
--
See you in Austin (Knowledge Technologies 2001)
http://www.gca.org/attend/2001_conferences/kt_2001/mon.htm
------------------------------------------------------------------------
Eric van der Vlist Dyomedea http://dyomedea.com
http://xmlfr.org http://4xt.org http://ducotede.com
------------------------------------------------------------------------
--
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)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:05 UTC
webmaster@xmlfr.org
|