我有一个样式表,我希望在xsl文本元素中插入预定义的字符串变量,但在搜索网页时找不到任何指针。
例如:
<xsl:variable name="var" select="node()/ref/text()"/>
...
<xsl:text>Some text where I want to append $var variable desperately</xsl:text>
...
我试过$ var,($ var),{$ var} ...
答案 0 :(得分:12)
Some text where I want to include the value of <xsl:value-of select='$var'/>.
请注意,只需要<xsl:text>
来控制空格上的行为。大多数情况下,你可以简单地输入文字,只是在结果不符合预期时包含这个元素 - 我想知道何时使用<xsl:text>
的规则并没有受到伤害。 :)(并不复杂:使用<xsl:text>
否则,你的文本节点只会有空格,或者它们是否包含你想要避免的额外空格。)
编辑:请注意,变量中的空格在使用时不需要xsl:text
进行保护,这仅适用于XSL解析步骤:
<xsl:variable name="newline"><!-- can be global -->
<xsl:text>
</xsl:text>
</xsl:variable>
<xsl:when test="starts-with(., $newline)">
...
</xsl:when>
Here's some text<xsl:value-of select='$newline' />with formatting.
答案 1 :(得分:7)
这是另一种方式:
<xsl:value-of select="concat(
'Some text where I want to append ',
$var,
' variable desperately')" />
虽然它有点难看,但它可以让你完全控制文本和变量文本之间的空白区域。
答案 2 :(得分:4)
xsl:text
仅用于输出固定文本,并且不能包含嵌套指令。输出变量文本的指令是xsl:value-of
。
答案 3 :(得分:0)
我做了类似的事情来创建一个带字符串的变量和另一个变量
<xsl:variable name="imgsrc">http://mirrors.creativecommons.org/presskit/buttons/<xsl:value-of select='$iconSize' />/<xsl:value-of select="substring-before($licenceTypeAndText, '|')" /></xsl:variable>
这会产生一个像这样的值的变量
http://mirrors.creativecommons.org/presskit/buttons/80x15/png/by.png