如何在Saxon的XSL 2.0中显示堆栈跟踪?

时间:2014-07-31 09:34:52

标签: xslt saxon

我正在使用XSL 2.0和Saxon 9.5 EE。

我正在寻找类似的东西:

<xsl:message>Stack trace: <saxon:getCallStack /></xsl:message>

我想在模板中使用它来进行调试,例如在myFile.xsl

<xsl:template name="myTemplate">
  <xsl:message>Stack trace: <saxon:displayCallStack /></xsl:message>
  (...)
</xsl:template>

当我在header.xsl中调用它时:

<xsl:call-template name="myTemplate">

header.xsl包含在transform.xsl中:

<xsl:import href="header.xsl" />

我想查看带行号的文件:

Stack trace:
    myFile.xsl:32
    header.xsl:123
    transform.xsl:10

1 个答案:

答案 0 :(得分:2)

使用Saxon扩展函数saxon:print-stack()

http://www.saxonica.com/documentation/index.html#!functions/saxon/print-stack

与所有Saxon扩展功能一样,这需要Saxon-PE或更高版本。