将XSLT与一种类型的变量一起使用
有没有一种方法可以只使用XSLT中变量的一种方法 例如:将XSLT与一种类型的变量一起使用,xslt,variables,Xslt,Variables,有没有一种方法可以只使用XSLT中变量的一种方法 例如: <xsl:variable name="myvar" select="title" /> 它从我的xml中选择标题,然后我想在模板中使用它: <h2 title="{$myvar}">{$myvar}</h2> {$myvar} 但是,它只显示title属性。 当我这样做的时候: <h2 title="<xsl:value-of select='$myvar'>">&l
<xsl:variable name="myvar" select="title" />
它从我的xml中选择标题,然后我想在模板中使用它:
<h2 title="{$myvar}">{$myvar}</h2>
{$myvar}
但是,它只显示title属性。
当我这样做的时候:
<h2 title="<xsl:value-of select='$myvar'>"><xsl:value-of select='$myvar'></h2>
它只能反过来工作
因此,我的问题是:
是否有一种方法既适用于属性又适用于内容?是的,您可以避免AVT:
<h2>
<xsl:attribute name="title">
<xsl:value-of select=$myvar/>
</xsl:attribute>
<xsl:value-of select=$myvar/>
</h2>
XSLT使用XML语法,这就是为什么不能在属性中包含xsl:value指令:因此AVT表示法使用大括号。如果该语言也允许文本节点中使用大括号,那就太好了,但事实并非如此。为什么不能只使用
?@Alberteddu$myvar周围的单引号将选择该字符串。我的复制和粘贴太粗心了。:-我的想法是,我可以允许最终用户只添加一些简单的标记,然后用相同的字符串替换它们。但由于这是不可能的,我现在只使用正则表达式来识别属性中的那些,然后用花括号版本替换它们,剩下的在节点中用版本值替换它们。
<h2 title="{$myvar}">
<xsl:value-of select=$myvar/>
</h2>