Управлять выводом <xsl: apply-templates> - PullRequest
0 голосов
/ 22 апреля 2009

Как мне манипулировать строками на выходе <xsl:apply-templates>?

Мне нужно экранировать кавычки и т. Д., Поскольку он наконец передается в переменную JavaScript.

Ответы [ 2 ]

2 голосов
/ 22 апреля 2009

Хорошим и понятным подходом было бы изменить ваш XSLT так, чтобы его вывод не нуждался в каких-либо дополнительных манипуляциях.

Если ваш вызов <xsl:apply-templates> приводит к строке, которой по какой-то причине необходимо манипулировать, вам сначала нужно захватить ее в переменной:

<xsl:variable name="temp">
  <xsl:apply-templates />
</xsl:variable>

<xsl:variable name="temp-manipulated">
  <xsl:call-template name="do-some-string-mainpulation">
    <xsl:with-param name="string" select="$temp" />
  </xsl:call-template>
</xsl:variable>

<xsl:value-of select="$temp-manipulated" />

Кроме того, вы можете интегрировать <xsl:apply-templates> в <xsl:with-param>, что избавит вас от одного шага:

<xsl:variable name="temp">
  <xsl:call-template name="do-some-string-mainpulation">
    <xsl:with-param name="string">
      <xsl:apply-templates />
    </xsl:with-param>
  </xsl:call-template>
</xsl:variable>

<xsl:value-of select="$temp" />
0 голосов
/ 22 апреля 2009

Захват в переменную, затем манипулирование значением для создания вывода:

<xsl:variable name='temp'>
  <xsl:apply-templates ...>
</xsl:variable>

<xsl:value-of select='expression involving $temp' />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...