<xsl:for-each select="auteur">
<xsl:value-of select=""/>
<xsl:if test="@dt">
<xsl:text> </xsl:text><em>(<xsl:value-of select="@dt"/>)</em>
</xsl:if><br/>
</xsl:for-each>
une personne ici semble avoir eu le même problème:
http://forum.hardware.fr/hfr/Programmation/XML-XSL/test-existence-balise-sujet_94465_1.htm
mais pour moi ça ne marche pas.. j'ai tantôt
Jeton attendu 'eof' trouvé '@'
tantôt erreur XPath : test de Name ou de Nodetype attendu sur IE ou
expression attendue sur FF
tantôt même ')' attendu quand j'ai esseyé test="not(no(@dt))"
j'ai aussi essayé test="@dt != ''" mais là non plus ça ne lui va pas!
ni à IE ni à FF.
j'en appelle donc à votre aide!
> je n'arrive pas à tester si un argument existe...
Un argument ? J'imagine que tu veux dire un attribut.
> <xsl:for-each select="auteur">
> <xsl:value-of select=""/>
select="" est incorrect, il doit y avoir une expression XPath ici.
> <xsl:if test="@dt">
> <xsl:text> </xsl:text><em>(<xsl:value-of select="@dt"/>)</em>
> </xsl:if><br/>
> </xsl:for-each>
Merci d'indenter correctement. On n'a déjà aucune idée du fichier XML
source, si en plus tu nous piège avec des indentations trompeuses.
> une personne ici semble avoir eu le même problème:
> http://forum.hardware.fr/hfr/Programmation/XML-XSL/test-existence-balise-sujet_94465_1.htm
A mon avis son problème n'a rien à voir.
> mais pour moi ça ne marche pas.. j'ai tantôt
> Jeton attendu 'eof' trouvé '@'
Jeton c'est surement "token". Es-tu sûr que tu nous montres le code qui
provoques l'erreur.
> tantôt erreur XPath : test de Name ou de Nodetype attendu sur IE ou
> expression attendue sur FF
Voir plus haut l'erreur sur <xsl:value-of>
> tantôt même ')' attendu quand j'ai esseyé test="not(no(@dt))"
no() ? Ce n'est pas une fonction. De toute façon, not() doit recevoir
une expression, donc la deuxième parenthèse ouvrante provoque une
erreur. Normal.
> j'ai aussi essayé test="@dt != ''" mais là non plus ça ne lui va pas!
> ni à IE ni à FF.
Ce dernier test est équivalent à string(@dt)!='', qui sera vrai soit si
l'attribut dt est absent, soit si il est présent et sa valeur est vide.
Le test écrit plus haut (test="@dt") est vrai si un attribut "dt" existe
sur l'élément courant (un élément "auteur" en l'occurrence, puisqu'on
est dans le <xsl:for-each>). Si ça ne marche pas, c'est qu'il y a un
autre problème.
-- Alain.
ça alors!
c'était bien à cause du point qui manquait entre les " ". il
m'indiquait pas la bonne erreur!
mnt tt roule! merci!
:)