bonjour,
j ai le message d erreur suivant:
Expression must evaluate to a node-set.
-->substring-after($tmp,$finTokenAbbrev)<--
...ce que je ne comprend pas car j ai bien du texte...
qq un aurait une explication?
bonjour,
j ai le message d erreur suivant:
Expression must evaluate to a node-set.
-->substring-after($tmp,$finTokenAbbrev)<--
...ce que je ne comprend pas car j ai bien du texte...
qq un aurait une explication?
voici mon template
l arrivée est du text html que je parse pour trouver un tet flag que je transforme... il se trouve que quand je réappelle mon template avec le reste de la chaine...le parseur plante... je ne comprend vraiment pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <xsl:template match="text()" mode="extractElements"> <xsl:variable name="debutTokenAbbrev" select="string('<e:Abbreviation')"/> <xsl:variable name="debutTokenAbbrev2" select="string('Ref="')"/> <xsl:variable name="finTokenAbbrev" select="string('"/>')"/> <xsl:choose> <xsl:when test="contains(.,$debutTokenAbbrev) "> <xsl:variable name="tmp1" select="substring-after(.,$debutTokenAbbrev)"/> <xsl:variable name="tmp" select="substring-after($tmp1,$debutTokenAbbrev2)"/> <xsl:value-of select="substring-before(.,$debutTokenAbbrev)"/> <xsl:element name="e:Abbreviation"> <xsl:attribute name="Ref"><xsl:value-of select="substring-before($tmp,$finTokenAbbrev)"/></xsl:attribute> </xsl:element> <xsl:if test="contains($tmp,$finTokenAbbrev)"> <!--xsl:apply-templates select="substring-after($tmp,$finTokenAbbrev)" mode="extractElements"/--> <xsl:value-of select="substring-after($tmp,$finTokenAbbrev)"/> </xsl:if> </xsl:when> <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise> </xsl:choose> </xsl:template>
Tu ne peux pas faire un apply templates sur une chaine hors c'est le format de sortie d'un substring, tu dois le faire sur un noeud qui contient la chaine à la limite
mais je pensais qu une chaîne de caractères était par défaut un noeud de type text()...
je ne vois donc pas le problème...
si ce n est pas le cas, y a t il un moyen de transformer une string en text()??
Au passage j ai corrigé mon problème en nommant mon template et en l appelant avec un paramètre mais cette solution est tout de même bcp plus lourde..
ps: je sais pas ce que vous avez toi et Grand father avec vos avatars... en même temps c vrai que moi j ai bien changer carrément de pseudo![]()
Pas du toutEnvoyé par luta
Le contenu d'un noeud text() est une chaine de caractères , c'est tout.
Vois pas de quoi tu causesps: je sais pas ce que vous avez toi et Grand father avec vos avatars...![]()
merci bcp,
je viens de jetter un oeil sur la FAQ xml et pense vraiment qu il serait bon d'y ajouter la différence en text() et string..
On va reflechir sur cet ajout pour la prochaine versionEnvoyé par luta
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager