Как получить доступ к переменной в CDATA из XSLT? - PullRequest
3 голосов
/ 15 февраля 2010

Я использую XSLT Transformation и мне нужно поместить некоторые данные в раздел CDATA, и эта переменная присутствует в переменной.

Запрос: Как получить доступ к переменной в CDATA? Образец дан ниже:

<xsl:attribute name ="attributeName">
<![CDATA[ 
  I need to access some variable here like
   *<xsl:value-of select ="$AnyVarible"/>* 
 ]]>
</xsl:attribute>

Как я могу использовать varibale в CDATA? Примечание: я не могу использовать -> &lt;![CDATA[<xsl:value-of select ="$AnyVarible"/>]]&gt; Заранее спасибо.

Ответы [ 3 ]

6 голосов
/ 15 февраля 2010

У меня есть решение для этого ... К вашему сведению для всех ...

<xsl:text
disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
<xsl:value-of select ="$AnyVarible"/>
<xsl:text
disable-output-escaping="yes">]]&gt;</xsl:text>
3 голосов
/ 15 февраля 2010

Если вы хотите включить разделы CDATA в свой вывод, вы должны использовать атрибут cdata-section-elements из xsl: output. Это список имен элементов. Любые такие элементы будут иметь свое текстовое содержимое в формате CDATA.

<xsl:output cdata-section-elements ="foo" />

<foo>
    <xsl:value-of select="$bar' />
</foo>
3 голосов
/ 15 февраля 2010

CDATA - это просто текст, как и любое другое содержимое элемента ...

Но используя элемент xsl:output, вы сможете указать, какие элементы должны быть записаны как CDATA с атрибутом cdata-section-elements.

EDIT:

Теперь, когда есть правильный образец, я думаю, вы имеете в виду это:

<xsl:attribute name ="attributeName">
<![CDATA[ 
   I need to access some variable here like
   *]]><xsl:value-of select ="$AnyVarible"/><![CDATA[* 
]]>
</xsl:attribute>
...