Stack usage error
来自 libxml2/libxslt/lxml的原因是什么?
问问题
179 次
2 回答
1
看来您正在使用lxml
扩展功能。在这种情况下,XPATH_STACK_ERROR
当从 XPath 堆栈中弹出一个值并且堆栈为空时,会发生“堆栈使用错误”(内部)。典型的场景是使用比预期更少的参数调用的扩展函数。
于 2013-11-15T17:38:31.837 回答
0
根据@nwellnhof 的回答,这源于一个扩展函数已注册并调用的参数少于预期的事实。
就我而言,这是因为我传递了一个节点的内容,在某些情况下该节点是空的。以前这很好,但是我的工具链中的某些内容发生了变化并开始引发此错误。
我的原始代码看起来像:
<xsl:template match="foo">
<xsl:value-of select="my:func(.)" />
</xsl:template>
当foo
为空时,会引发“堆栈使用错误”,通常与“未注册函数”错误组合在一起。简单的解决方法是仅在 中有内容时匹配foo
,例如:
<xsl:template match="foo[./*]">
<xsl:value-of select="my:func(.)" />
</xsl:template>
于 2013-11-18T15:26:50.820 回答