Voici un exemple répondant à un problème similaire utilisant la fonction document() :
In.xml :
<text>
<word>XSLT</word>
<word>is</word>
<word>wonderfull</word>
<word>but</word>
<word>sometimes</word>
<word>tricky</word>
</text>
Dico.xml:
<dico>
<term en="XSLT" fr="XSLT"/>
<term en="world" fr="monde"/>
<term en="name" fr="nom"/>
<term en="XSLT" fr="XSLT"/>
<term en="wonderfull" fr="merveilleux"/>
<term en="is" fr="est"/>
<term en="and" fr="et"/>
<term en="beautifull" fr="beau"/>
<term en="sometimes" fr="quelquefois"/>
<term en="tricky" fr="delicat"/>
</dico>
In.xsl:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<text>
<xsl:apply-templates/>
</text>
</xsl:template>
<xsl:template match="word">
<xsl:variable name="en_term" select="."/>
<xsl:variable name="fr_term" select="document('dico.xml')/dico/term[@en=$en_term]/@fr"/>
<mot>
<xsl:choose>
<xsl:when test="$fr_term">
<xsl:value-of select="$fr_term"/><xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>*PAS DE TRAD : </xsl:text>
<xsl:value-of select="$en_term"/><xsl:text>* </xsl:text>
</xsl:otherwise>
</xsl:choose>
</mot>
</xsl:template>
</xsl:stylesheet>
Out.xml :
<?xml version="1.0" encoding="UTF-8"?>
<text>
<mot>XSLT </mot>
<mot>est </mot>
<mot>merveilleux </mot>
<mot>*PAS DE TRAD : but* </mot>
<mot>quelquefois </mot>
<mot>delicat </mot>
</text>
Joël Martin-Gallausiaux, Responsable de Formations
Sun Education @ Accenture Learning
Tél : +33 1 5323 5424
-----Original Message-----
From: xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org] On Behalf Of Jean-Marie Hoornaert
Sent: vendredi 1 octobre 2004 17:34
To: xml-tech@xmlfr.org
Subject: [xml-tech] "merge" de deux fichiers xml via transformation xsl
Bonjour,
Petite (ou grande, c'est selon) question.
Problème :
J'ai une base de donnée avec des textes.
J'ai une seconde base avec la définition de mots.
Dans mon document "textes", une balise
encadre le mot pour lequel une définition est disponible dans le
fichier "définitions"
texte texte <définition id="xxx">blablabla</definition> texte texte
Le fichier "définition" :
<definitions>
<definition id="xxx" mot="blablabla">
le texte de la définition
<definition>
...
</définitions>
La question :
Quand je transforme mon document textes.xml pour en faire un fichier
xhtml,
puis je faire appel au document definitions.xml pour récupérer la
définition du mot via l'id.
Bref d'utiliser deux fichiers xml dans un seul document xsl pour un
faire un seul document résultat (c'est dans l'objet du message) ?
Si oui, comment ?
Merci.
--
Cordialement.
Jean-Marie -HOO;-)
____________________
Jean-Marie Hoornaert
Courriel : jmh@h2o.be
PPsP* : http://www.h2o.be
Newsletter : abonnement@h2o.be?subject=abonnement_h2o
* Page Personnelle sans Prétention
* pour AppleScripter FileMaker
--
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)
This message is for the designated recipient only and may contain privileged, proprietary, or otherwise private information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the email by you is prohibited.
--
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 Fri Oct 1 17:45:41 2004