[XSLT] problème pour gérer plusieurs modèles dans une feuille
Bonsoir,
je tente de faire une feuille xslt pour le document xml suivant :
Code:
1 2 3 4 5 6 7
| <?xml version="1.0" encoding="ISO-8859-1"?>
<MoDyCo>
<chercheur>cori</chercheur>
<chercheur>minel</chercheur>
<DOC href="./COMPLET.xml">
</DOC>
</MoDyCo> |
J'utilise la fonction document() pour traiter les données récupérées du fichier COMPLET.xml . Lorsque je l'utilise seule, je récupère bien ce que je veux, mais dès que j'y ajoute un autre modèle pour récupérer le nom d'un chercheur, les données censées être récupérer ne s'affiche plus dans le résultat.
Pour plus de clareté,
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" />
<xsl:template select="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="MoDyCo">
<xsl:for-each select="./chercheur">
<xsl:copy-of select="."/>
<xsl:call-template name="DOC"/>
</xsl:for-each>
</xsl:template>
<xsl:template name="DOC">
<xsl:apply-templates select="document(@href)" />
</xsl:template>
<xsl:template match="documents/typdoc/document">
<xsl:for-each select="./auteur">
<xsl:if test="contains(text(),'Cori')">
<xsl:copy-of select="../child::*" />
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet> |
J'ai le nez dedans depuis trop longtemps, je ne vois vraiment pas où peut bien se situer le problème...
Merci d'avance...
Ludivine
oups, désolée erreur de ma part
Effectivement, call-templates n'était pas la bonne solution...je l'avais testé par désespoir de cause... :?
mais l'apply-templates ne fonctionne pas non plus... Ce que je ne comprends quand même pas...
En tout cas, merci pour cette première réponse qui m'a permis de comprendre call-template... et merci d'avance pour le reste...