Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1248 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Passage de paramètre à for each en xslt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Passage de paramètre à for each en xslt

n°1919651
calancheur
Posté le 30-08-2009 à 11:49:11  profilanswer
 

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.

mood
Publicité
Posté le 30-08-2009 à 11:49:11  profilanswer
 

n°1919660
calancheur
Posté le 30-08-2009 à 13:28:48  profilanswer
 

Vraiment personne n'a été confronté à ce problème?
Un grand grand merci par avance

n°1919661
masklinn
í dag viðrar vel til loftárása
Posté le 30-08-2009 à 13:59:44  profilanswer
 

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 "." )


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1919663
calancheur
Posté le 30-08-2009 à 14:08:17  profilanswer
 

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

n°1919665
calancheur
Posté le 30-08-2009 à 15:04:42  profilanswer
 

Vraiment personne n'est en mesure de me répondre?

n°1921160
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 04-09-2009 à 10:13:45  profilanswer
 

Je comprends rien à ton truc non plus...

 

2-3 trucs :

  • les for-each en général on évite, on spécialise les templates plutôt
  • faut bien distinguer <xsl:variable name="temp" select="data/row"/> et <xsl:variable name="temp">data/row</xsl:variable> que tu utiliserais après pour un select=$temp. Dans le premier cas $temp est un 'result tree fragment', qui sera convertit en node-set si tu fais un for-each dessus par exemple (donc tu peux faire ton for-each). Dans le deuxième cas c'est une string, et ça ne sera jamais convertit en node-set (tu ne pourras pas faire ton for-each)



Message édité par Xavier_OM le 04-09-2009 à 10:16:43

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°1921171
calancheur
Posté le 04-09-2009 à 10:25:50  profilanswer
 

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

n°1921275
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 04-09-2009 à 14:02:21  profilanswer
 

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>
 


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  Passage de paramètre à for each en xslt

 

Sujets relatifs
[XSLT] Intégrer une image SVG créée dynamiquementPointeur de fichier en paramètre
Webservice SOAP - passage du contenu d'un fichier en variablerécuperer le parametre value d'un bouton dans la fonction execappli
[RESOLU]TRés URGENT chekbox et passage de variableaide jquery thickbox passage de variable
Traitement formulaire avec for each et explodeInclure un site dans un autre en passant un paramètre à l'url
Faire apparître une image avec le passage de sourisPasser en paramètre un fonction?
Plus de sujets relatifs à : Passage de paramètre à for each en xslt


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR