XSLT在变量中存储值

时间:2011-08-09 18:19:35

标签: java xslt java-ee

我有一个项目,我正在使用XSLT来显示db(db2)中的数据。我正在做一些变量,比如......

<xsl:variable name="RatePerLoadedMiles1">
    <xsl:call-template name="ratePerLoadedMiles">
        <xsl:with-param name="summaryRow" select="$SummaryRow1" />
        <xsl:with-param name="numerator" select="$OperatingExpense1"/>
    </xsl:call-template>
</xsl:variable>

现在,模板存储在现有且运行正常的xslt文件中,该文件只存储模板以供重用。

我的问题是 ... 当我调用变量$RatePerLoadedMiles1时,我得到一个值返回值或者{之间的内容是什么{1}}和<xsl:variable>所以,如果我传递它的值为5,那么我现在有5个存储或者我将拥有变量标记的内容,每次评估为5。我不太关心它只是提供的错误消息,因为它是请求。我主要担心的是上述问题。

如果重要我正在调用变量......

</xsl:variable>

我也在用它做一些额外的计算......

<td class="rightAligned">
    <xsl:copy-of select="$RatePerLoadedMiles1" />
</td>

输出来自浏览器......

  

网页错误详情

     

用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.1; WOW64;   三叉戟/ 4.0; EasyBits GO v1.0; SLCC2; .NET CLR 2.0.50727; .NET CLR   3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; MDDR;   FDM)时间戳:星期二,2011年8月9日14:24:01 UTC

     

消息:对变量或参数'RatePerLoadedMiles'的引用   无法解决。可能未定义变量或参数,或   它可能不在范围内。

     

行:1385字符:2代码:0 URI:   http://costanalysis:13000/costAnalysis/protected/javascript/xWireClientFull.jsb

3 个答案:

答案 0 :(得分:0)

xsl:variable的内容用作序列构造函数。在问题中提供的示例片段中,变量将填充一组由xsl:call-template指令本身返回的0个或更多节点或原子值。

答案 1 :(得分:0)

你的变量的值是(在XSLT 1.0中)一个“结果树片段”,它在技术上是一个带子节点的文档节点,除了你可以用它做什么有限制。但是如果你将它用作字符串,你将有效地获取文档节点的字符串值,如果你将它用作数字,你将把该字符串转换为数字。

但这与错误消息无关,即错误消息表示您正在引用其范围之外的变量。

答案 2 :(得分:0)

你的问题的答案是变量RatePerLoadedMiles1存储值5(作为RTF,如@Michael Kay所描述的)。 <{1}}被引用时未重新评估

如果它提供了您发布的错误消息,那么您在某处引用它时显然已忘记了$RatePerLoadedMiles1,因为错误消息显示为1

相关问题