Passage de paramètre à for each en xslt - XML/XSL - Programmation
Marsh Posté le 30-08-2009 à 13:28:48
Vraiment personne n'a été confronté à ce problème?
Un grand grand merci par avance
Marsh Posté le 30-08-2009 à 13:59:44
Rien compris perso, il n'y a pas besoin de faire passer de paramètre à un for-each dans la mesure où il a accès à toute la scope de sa template (la seule altération étant le paramètre implicite "." )
Marsh Posté le 30-08-2009 à 14:08:17
masklinn a écrit : Rien compris perso, il n'y a pas besoin de faire passer de paramètre à un for-each dans la mesure où il a accès à toute la scope de sa template (la seule altération étant le paramètre implicite "." ) |
En fait je passe un parametre qui vient d'un autre fichier xml.
Ce paramètre me sert à supprimer des éléments obsolètes de mon for-each.
Pour résumer, j'ai un fichier liste.xml qui contient mes éléments à afficher
et un fichier del.xml qui contient les éléments obsolètes (par rapport à une date).
Je récupère donc la liste du del.xml que je viens intégrer en param dans mon liste.xsl.
Le problème est que mon param n'est pas interprété dans mon for-each...
Ai-je été plus clair?
Merci par avance
Marsh Posté le 04-09-2009 à 10:13:45
Je comprends rien à ton truc non plus...
2-3 trucs :
Marsh Posté le 04-09-2009 à 10:25:50
En fait j'ai deux flux xml.
1er flux xml: il contient les infos des offices de tourisme que j'exploite et notamment une balise qui sert d'id propre à chaque info
2eme flux xml: il contient uniquement l'id des infos qui ne sont plus valides parce que evenement passé.
Mon but est donc de ne plus afficher les infos périmées du flux xml1 en fonction des id présentes dans le xml2.
L'élément commun est donc l'id qui est présente ds xml 1 et xml2.
Merci par avance pr votre aide
Marsh Posté le 04-09-2009 à 14:02:21
Le template qui match les infos périmées de xml1 est un truc du genre :
<xsl:template match='id = exslt:node-set(document("xml2.xml" ))/path/to/id'>
<ici on affiche>
</xsl:template>
Marsh Posté le 30-08-2009 à 11:49:11
Bonjour,
Après avoir longuement cherché sur internet, j'en viens à votre aide.....
Je n'arrive pas à faire passer un paramètre dans un for-each select. ($DEL)
Si je fais un <xsl:value-of select="$DEL"/> cela fonctionne.
Mais impossible de récupérer cette valeur dans mon for-each.
Voici le début de mon code:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8"/>
<xsl:param name="DEL" select="sitraEVE386630"/>
<xsl:template match="/">
<xsl:for-each select="ListeOI/OI/DublinCore/identifier[.!='$DEL']">
<xsl:variable name="n"> <xsl:value-of select="position()"/> </xsl:variable>
<a>
<xsl:attribute name="name"><xsl:value-of select="$n"/> </xsl:attribute>
</a>
J'espère que vous pourrez m'éclairer sur ce problème.
Merci par avance.