在XSLT模板和Velocity中评估变量两次的变量

时间:2016-02-05 08:32:10

标签: xml xslt velocity apache-fop

我有一个xslt模板,可以创建一个FOP文件,之后我想用速度进行评估。当我有这样的事情时:

<fo:basic-link internal-destination="${variableOutside}">
      ${variableInside}
</fo:basic-link>

两个变量&#34; variableInside&#34;和&#34; variableOutside&#34;应该通过速度评估,而不是通过XSLT评估。

然而,在第一次XSLT转换之后,我得到的是:

<fo:basic-link internal-destination="$">
      ${variableInside}
</fo:basic-link>

也就是说,已经对variableInside进行了评估,因为XSLT假设这不是文字字符串而是变量,因为它没有任何值,所以它会留空。

但是,VariableOutside未使用,因为它不在我猜的属性中。

现在,我知道我可以摆脱花括号,这将有效,但有时,我只需要转换文本的一部分,例如:

${variableOutside}.field1

应该成为

valueofvariable.field1

如果我不使用花括号,Velocity将假设我在不存在的variableOutside中寻找field1。

所以,我的问题是,如何摆脱花括号?我试过两个&#34; /&#34;和&#34; \&#34; (双和单)以及{和},但它们都不起作用。

1 个答案:

答案 0 :(得分:1)

如果要在属性中输出花括号,而不是让XSLT将它们视为属性值模板,请使用双括号

1.3/sqrt(number of buckets)