我如何使用XSLT变量的值?

时间:2009-03-29 18:22:25

标签: xslt

我正在尝试学习XSLT。我只是变得疯狂。变量应该在xsl:variables实体中声明,并且实例化它们的名称前面有$符号(比如perl变量),对吧?为什么这个代码:

<xsl:stylesheet version="1.0"  
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
        <xsl:variable name="color" select="'red'" />
        <p>$color</p>
    </xsl:template>
</xsl:stylesheet>

导致文字字符串:“$ color”正在使用msxsl解析器解析一个简单的非空xml文档?非常感谢

4 个答案:

答案 0 :(得分:17)

使用<xsl:value-of select="$color"/>而不是直接将$color写入文档。

另见this question

答案 1 :(得分:11)

此外,在属性中,您可以直接获取值:

<span style="color:{$color}" />

答案 2 :(得分:2)

  

为什么这个代码:......

     

<xsl:variable name="color" select="'red'" /> <p>$color</p>

     

产生文字字符串:   “$ color”正在撰写

因为此代码表示:输出字符串$ color作为<p>元素的文本节点子元素

要输出$color xsl:变量的值,请使用以下其中一项:

  • <xsl:value-of select="$color"/>
  • <xsl:copy-of select="$color"/>

答案 3 :(得分:2)

xslt的一个好的经验法则:如果它不在<xsl:foo>标签中,那么它不是代码。这是输出。