@magary4

Как заменить амперсанд в шаблоне?

Функция replace-string взята
отсюда

вызываю
<xsl:call-template name="replace-string">
                    <xsl:with-param name="text" select="@custom:src"/>
                    <xsl:with-param name="replace" select="'&amp;'" />
                    <xsl:with-param name="with" select="' '"/>
                </xsl:call-template>


но заменяет не подстроку '&' а лишь один символ &, т.е получаю ' amp;' вместо пробела

что не так делаю?
  • Вопрос задан
  • 610 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Roman-Fov
что не так делаю?

Используйте translate. Долой странные функции

<root>
      <foo>123&amp;456</foo>
</root>

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:template match="/root/foo">
		<xsl:value-of select="translate(., '&amp;', ' ')"/>
	</xsl:template>
</xsl:stylesheet>

123 456
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы