2009-10-01 13 views
0

Im obtenir en cas d'erreur quand je tente d'utiliser les éléments suivants:XSL - Extension non valide Xpath sur Remplacer

<xsl:variable name="url" select="guid"/>   
<xsl:variable name="vid" select="substring-after($url,'podcast/')"/> 
<xsl:variable name="pre" select="substring-before($vid,'.mp4')"/> 

<<xsl:variable name="p" select="replace($pre,'_','-')"/> 
<xsl:variable name="p1" select="concat($p,'.embed_thumbnail.jpg')"/> 
<xsl:variable name="p2" select="concat('http://images.ted.com/images/ted/tedindex/embed-posters/',$p1)"/> 

Quelqu'un peut-il voir un problème, tout cela me semble bon?

Répondre

1

Utilisez-vous un processeur XSLT 1? La fonction replace est apparue dans XPath 2.0 et n'est donc pas disponible dans XSLT 1.

Dans ce cas, vous pouvez simplement utiliser la fonction translate à la place.

0

Vous avez une séquence d'échappement supplémentaire moins que signe avant la définition de votre variable p:

<<xsl:variable name="p" select="replace($pre,'_','-')"/> 

Ce n'est pas une syntaxe valide.

Vous devez soit supprimer:

<xsl:variable name="p" select="replace($pre,'_','-')"/> 

Ou échapper:

&lt;<xsl:variable name="p" select="replace($pre,'_','-')"/> 
+0

N'a pas résolu le problème mais pas dans le bon sens. – CLiown

0

Je vois un '< <' au début de la ligne 4, est-ce pas?