将XSLT与一种类型的变量一起使用

时间:2011-08-24 09:02:10

标签: xslt variables

有没有办法在XSLT中只使用一种方法来使用变量?

例如:

<xsl:variable name="myvar" select="title" />

从我的xml中选择标题,然后我想在模板中使用它:

<h2 title="{$myvar}">{$myvar}</h2>

但是它只显示title属性。 当我这样做时:

<h2 title="<xsl:value-of select='$myvar'>"><xsl:value-of select='$myvar'></h2>

它只能反过来。

所以我的问题:

是否有一种适用于属性和内容的方式?

2 个答案:

答案 0 :(得分:2)

是的,你可以避免AVT:

<h2>
 <xsl:attribute name="title">
  <xsl:value-of select=$myvar/>
 </xsl:attribute>
 <xsl:value-of select=$myvar/>
</h2>

但我觉得使用AVT和xsl:value-of更简单:

<h2 title="{$myvar}">
 <xsl:value-of select=$myvar/>
</h2>

答案 1 :(得分:1)

XSLT使用XML语法,这就是为什么你不能在属性中包含xsl:value-of指令的原因:因此使用花括号的AVT表示法。如果语言允许在文本节点内部使用花括号,那就太好了,但事实并非如此。