В XML / XSLT вы не экранируете символы с обратной косой чертой.
- В XML вы можете использовать ссылки на сущности.
- В XSLT вы можете использовать ссылки на сущности и переменные.
Проблема с апострофом внутри ваших строк concat заключается в том, что синтаксический анализатор XML, загружающий XSLT, расширит его до того, как concat будет оценен механизмом XSLT; поэтому вы не можете использовать ссылку на сущность для символа апостроф, если она не заключена в двойные кавычки (или ссылки на сущности для двойных кавычек, как показывает ответ Дмитрия Новатчева).
- Используйте ссылку на сущность
"
для двойной кавычки "
.
- Создать переменную для символа апострофа и ссылаться на переменную как на один из компонентов concat ()
Применяется в контексте XSLT:
<xsl:variable name="apostrophe">'</xsl:variable>
<xsl:value-of select="concat(
'this is; "a sample',
//XML_NODE,
'"; "using an apostrophe ',
$apostrophe,
' in text"'
)" />
Если вам нужно решение XPath на 100%, которое избегает использования переменных XSLT, тогда ответ Димитра будет наилучшим.
Если вы обеспокоены тем, насколько легко читать, понимать и поддерживать, то предложение Майкла Кея использовать переменные XSLT для кавычки и апострофа может быть лучшим.