XSL - неверное расширение Xpath при замене - PullRequest
0 голосов
/ 01 октября 2009

Я получаю сообщение об ошибке, когда пытаюсь использовать следующее:

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

Кто-нибудь может увидеть проблему, мне все это хорошо?

Ответы [ 3 ]

1 голос
/ 03 октября 2009

Используете ли вы процессор XSLT 1? Функция replace появилась в XPath 2.0 и поэтому недоступна в XSLT 1.

В этом случае вы можете просто использовать функцию translate.

0 голосов
/ 01 октября 2009

Я вижу '<<' в начале строки 4, это так? </p>

0 голосов
/ 01 октября 2009

У вас есть дополнительный неэкранированный знак "меньше чем" до определения вашей p переменной:

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

Это недопустимый синтаксис.

Вы должны удалить его:

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

Или избежать этого:

&lt;<xsl:variable name="p" select="replace($pre,'_','-')"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...