Javascript 获取xslt“;堆栈";
我有一个xsl模板:Javascript 获取xslt“;堆栈";,javascript,php,xml,templates,xslt,Javascript,Php,Xml,Templates,Xslt,我有一个xsl模板: <xsl:template name="xsl-error-message"> <xsl:element name="script"> <xsl:text>console.error("There is an error.");</xsl:text> </xsl:element> </xsl:template> 我希望标记中包含以下j
<xsl:template name="xsl-error-message">
<xsl:element name="script">
<xsl:text>console.error("There is an error.");</xsl:text>
</xsl:element>
</xsl:template>
我希望
标记中包含以下javascript代码:
console.log('There is an error. Callers: <xsl:template match="/"> --> <xsl:template name="foo"> --> <xsl:template name="xsl-error-message">');
console.log('出现错误。调用方:-->-->');
因此我想检索称为xsl错误消息的模板
模板,并将此“跟踪”放在javascript代码中。
如果我不能这样做,有没有办法使调试XSLT变得更容易,并给出关于哪个模板称为xsl错误消息
template的提示
或者是否有某种方法可以使用PHP XsltProcessor(或任何其他PHP5+内置xsl处理器)来帮助调试和查找哪个模板调用了哪个模板?我看到了
setProfiling()
方法,但没有找到获得某种堆栈的方法(我可以在分析日志文件中看到调用了xsl错误消息,但我不知道是哪个模板调用了它)。值得一提的是,Saxon有一个扩展函数来输出堆栈跟踪:
但是,与所有Saxon扩展一样,这需要Saxon PE或更高版本,这意味着您必须找到几分钱。在浏览器中调试客户端XSLT很困难,但有些XML或XSLT IDE(如Stylus Studio或Oxygen)具有调试器。我不知道这是怎么回事,但是您可以始终使用参数调用模板。当然,使用真正的XSLT调试器,您可以在其中执行步骤、设置断点、查看调用堆栈、计算变量和动态调试。。。氧气,唱针,Altova。@MartinHonnen哦,天哪。。。哼好吧,很有趣,但完全超出我的预算!实际上,我也“接受”使用PHP的xslt处理器的方法,因为我可以在服务器端应用xslt。有什么想法吗?嗯,你会花费数不清的钱在时间和精力上,甚至尝试去做350美元买给你的东西。所以,很抱歉,除了谷歌的“免费XSLT调试器”之外,你没有什么想法,看看会有什么结果。从来没用过。
console.log('There is an error. Callers: <xsl:template match="/"> --> <xsl:template name="foo"> --> <xsl:template name="xsl-error-message">');