我有一个项目,我正在使用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
答案 0 :(得分:0)
xsl:variable
的内容用作序列构造函数。在问题中提供的示例片段中,变量将填充一组由xsl:call-template
指令本身返回的0个或更多节点或原子值。
答案 1 :(得分:0)
你的变量的值是(在XSLT 1.0中)一个“结果树片段”,它在技术上是一个带子节点的文档节点,除了你可以用它做什么有限制。但是如果你将它用作字符串,你将有效地获取文档节点的字符串值,如果你将它用作数字,你将把该字符串转换为数字。
但这与错误消息无关,即错误消息表示您正在引用其范围之外的变量。
答案 2 :(得分:0)
你的问题的答案是变量RatePerLoadedMiles1存储值5(作为RTF,如@Michael Kay所描述的)。 <{1}}被引用时未重新评估。
如果它提供了您发布的错误消息,那么您在某处引用它时显然已忘记了$RatePerLoadedMiles1
,因为错误消息显示为1
。