XSLT escape-апостроф и кавычки

У меня есть такой текст, как "Пример" экранирования в XSLT. Я хочу заменить "на \" и 'на \ ". Таким образом, вывод должен быть" Это \ "пример \" экранирования \' . Как я могу создать рекурсивный шаблон. Пожалуйста, помогите. Заранее спасибо.


person user3932597    schedule 11.04.2018    source источник
comment
Умеете ли вы использовать XSLT 2.0? Если это так, вы можете легко сделать это с помощью replace. Если нет, то стоит обновиться;)   -  person Tim C    schedule 11.04.2018
comment
Если вам нужно сделать это в XSLT 1.0, используйте рекурсивный шаблон str: replace с exslt.org, который обрабатывает произвольную замену строк.   -  person Michael Kay    schedule 11.04.2018
comment
да, используя XSLT2.0. У меня есть шаблоны, которые избегают кавычек и апострофов, но я хочу создать один шаблон, который выполняет работу обоих.   -  person user3932597    schedule 12.04.2018


Ответы (1)


В XSLT 2.0 просто добавьте текстовый шаблон

<xsl:template match="text()">
    <xsl:value-of select="replace(., '(&quot;|'')', '\\$1')"/>
</xsl:template>

Вывод

This is an \"example\" of \'escaping\'
person Rupesh_Kr    schedule 25.04.2018