我的代码看起来像这样(故意简化):
select min(row_number) from
(
SELECT @rownum:=@rownum + 1 as row_number,
p.*
FROM p,
(SELECT @rownum := 0) r
) g
where userid = 100
显然,由于变量的范围,这不起作用。我的问题是:
有没有办法从<xsl:template match="/">
<xsl:call-template name="call_me" />
<xsl:value-of select="$inner_variable" />
</xsl:template>
<xsl:template name="call_me">
<xsl:variable name="inner_variable" select="/*" />
</xsl:template>
模板全局定义变量,或从父(调用模板)范围访问此局部变量?
编辑:变量不是XML树片段,而是由C#函数处理的节点集。所以我真的需要访问变量。
谢谢!
答案 0 :(得分:0)
如果您想要一个包含被调用模板结果的变量,请执行:
<xsl:template match="/">
<xsl:variable name="result">
<xsl:call-template name="call_me" />
</xsl:variable>
...
</xsl:template>
这假设被调用的模板返回某种结果,例如:
<xsl:template name="call_me">
<xsl:value-of select="some-node" />
</xsl:template>