操作<xsl:apply-templates> </xsl:apply-templates>的输出

时间:2009-04-22 16:30:54

标签: xslt string

如何对<xsl:apply-templates>的输出进行字符串操作?

我需要转义引号等,因为它最终被传递给JavaScript变量。

2 个答案:

答案 0 :(得分:2)

漂亮而干净的方法是更改​​您的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" />

答案 1 :(得分:0)

捕获变量,然后操纵该值以创建输出:

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

<xsl:value-of select='expression involving $temp' />