XSL-экранирование Апострофа во время xsl: при тестировании

У меня есть следующий код, который, кажется, терпит неудачу.

<xsl:when test="$trialSiteName = 'Physician&apos;s Office'">

кроме того, visual studio жалуется, говоря

"ожидаемый конец выражения, найдено "s"

Как я должен экранировать символ?


В XSLT В1.0. Процессор Apache XSL-FO.

4 ответов


гораздо проще -- использовать:

   <xsl:when test="$trialSiteName = &quot;Physician&apos;s Office&quot;">

  1. объявить переменную:

    <xsl:variable name="apos" select='"&apos;"'/>
    
  2. используйте переменную, как это в <xsl:when> статья:

    <xsl:when test="$trialSiteName = concat('Physician', $apos, 's Office')">
    

&apos; работает для XPath 1.0. Если вы используете XSLT 2.0 с XPath 2.0, попробуйте двойной Апостроф:

<xsl:when test="$trialSiteName = 'Physician''s Office'">

ищите полное объяснение Дмитрия Новачева в его ответе Escape одинарная кавычка в функции XSLT concat


между &quot; вы можете добавить любые специальные символы, которые вы хотите.

<xsl:when test="$trialSiteName = &quot;Physician's what ever special charactors plainly add Office&quot;">