Подтвердить что ты не робот

Исключить одиночную кавычку в xslt concat function

Я хочу выводить одиночную кавычку вокруг переменной $ID в приведенном ниже xsl: value-of статусе xsl.

<xsl:value-of select="concat('process[@Ref=',$ID,']')"></xsl:value-of>

в настоящее время он печатает

[email protected]=87799989

Пожалуйста, дайте мне знать, как я могу это достичь.

Спасибо заранее, Кешав

4b9b3361

Ответ 1

Использовать &apos;?

<xsl:value-of select="concat('process[@Ref=&apos;',$ID,'&apos;]')"></xsl:value-of>

Изменить: см. ответ Dimitre для лучшего решения.

Ответ 2

В XPath 1.0:

Вы можете использовать встроенные объекты &apos; и &quot;

В XSLT 1.0:

В качестве альтернативы вы можете определить переменные $Q и $APOS (поместите содержимое (буквальный или буквенный символ) в тело xsl:variable, а не в атрибут select).

В XPath 2.x (это также означает XSLT 2.x и XQuery 1.x)

Просто избегайте апострофа, введя два соседних апострофа, избегая цитаты, введя две смежные цитаты, как определено языком XPath 2.0

Ответ 3

Чтобы расширить ответ Dimitre, вы можете использовать это решение в XSLT:

<xsl:variable name="apos">'</xsl:variable>
<xsl:value-of select="concat('process[@Ref=',$apos,$ID,$apos,']')"></xsl:value-of>

Ответ 4

<xsl:value-of
select="concat('process[@Ref=&apos;',$ID,'&apos;]')"></xsl:value-of>

это не работает для меня. Мое решение:

<xsl:value-of select="concat(&quot;process[@Ref='&quot;,$oidConstant,&quot;'&quot;)"></xsl:value-of>

Ответ 5

Простым примером будет

      <xsl:variable name="varTitle" select="title" />
<xsl:variable name="APOS">'</xsl:variable>
<xsl:value-of select="translate($varTitle, 'any text', $APOS)"/>

Это заменит "любой текст" на "в моем названии".