我有一个Java servlet,它生成xml,用xslt样式表翻译它,然后显示生成的HTML。这是我第一次使用xslt。调试xslt的好方法是什么?我也有(或者可以得到)一些示例XML文件来应用转换。但是我甚至不确定语法,所以能给予我语法警告的东西会很好。
s8vozzvw1#
如果你想进行“printf-style”调试,并且不想在输出中添加调试数据,那么可以使用<xsl:message>标签在处理样式表时生成调试输出,使用terminate="yes"属性你甚至可以停止样式表的处理。
<xsl:message>
terminate="yes"
egmofgnx2#
当你试图使用一个无效的XSLT时,Xalan应该会给予你一些有用的错误提示。如果你想要更强大的东西,一个调试XSLT的选项是Oxygen XML Editor。它集成了Xalan和Saxon转换引擎。它的调试模式允许你设置断点,监视变量,并提供其他类似的基本调试功能。它可能对你来说有点过头了,但它非常好。
hwazgwia3#
我曾经不得不编写和调试一些复杂的XSLT文档。当时我通过输出大量中间值使用调试过的“printf-style”。后来我发现有一种更简单的方法来完成这一任务-Altova XMLSpy。它允许您单步执行样式应用过程,观察中间输出等。VS 8还支持XSLT调试。http://msdn.microsoft.com/en-us/library/ms255605(VS.80).aspx我还应该提到XMLSpy和VS 8都有语法高亮显示,如果你在XML中指定了XSD,VS 8甚至会给你智能感!
dxpyg8gm4#
PHPStorm和其他IntelliJ IDE(商业)支持debugging XSLT。您可以逐步浏览文档并查看逐步生成的输出。
c6ubokkw5#
我几乎每天都在使用XSLT,已经有六七年了。我发现XSLT的“printf风格”调试非常有效,以至于我从未从使用任何其他调试机制中获得过好处(我尝试过XMLSpy和Visual Studio)。有时候确实会发生这样的情况,我希望能够检查变量的值,但构建输出它的逻辑是一件麻烦的事情。但这种情况非常罕见。有一个调试器可能会使 * 学习 * XSLT变得更容易(任何东西都会这样)。
flvlnr446#
在学习时,语法高亮编辑器通常对我来说就足够了(当然是在另一个窗口打开参考文档的情况下。Kate是XML和XSLT的优秀编辑。
avwztpqn7#
Xselerator是一个很棒的XSL调试工具,它可以:
我已经用了很多年了,这是一个很好的工具。
tcbh2hod8#
针对使用<xsl:message>调试XSLT 3.0的解答:XSLT 3.0有一个新的serialize()函数,在xsl:message指令中使用该函数会有所帮助。但是,对于新的array和map类型,您需要使用adaptive序列化方法,而不是默认的XML序列化:
serialize()
xsl:message
array
map
<xsl:message select="serialize($n, map{'method':'adaptive'})"/>
serialize当前的缺点是它不格式化输出。一个小的xpath-result-serializer XSLT project提供ext:print()和ext:println()函数作为serialize()的替代,它们格式化(并可选地着色)XSLT输出。输出文本使用为人类读者优化的Map/数组的缩写表示法,而不是解析器。对于具有上下文的XML节点,XPath位置与任何文本或属性值一起输出。
serialize
ext:print()
ext:println()
e0uiprwp9#
Microsoft Visual Studio也是一个很好的xslt调试工具。但是您必须安装
9条答案
按热度按时间s8vozzvw1#
如果你想进行“printf-style”调试,并且不想在输出中添加调试数据,那么可以使用
<xsl:message>
标签在处理样式表时生成调试输出,使用terminate="yes"
属性你甚至可以停止样式表的处理。egmofgnx2#
当你试图使用一个无效的XSLT时,Xalan应该会给予你一些有用的错误提示。如果你想要更强大的东西,一个调试XSLT的选项是Oxygen XML Editor。它集成了Xalan和Saxon转换引擎。它的调试模式允许你设置断点,监视变量,并提供其他类似的基本调试功能。它可能对你来说有点过头了,但它非常好。
hwazgwia3#
我曾经不得不编写和调试一些复杂的XSLT文档。当时我通过输出大量中间值使用调试过的“printf-style”。后来我发现有一种更简单的方法来完成这一任务-Altova XMLSpy。它允许您单步执行样式应用过程,观察中间输出等。
VS 8还支持XSLT调试。http://msdn.microsoft.com/en-us/library/ms255605(VS.80).aspx
我还应该提到XMLSpy和VS 8都有语法高亮显示,如果你在XML中指定了XSD,VS 8甚至会给你智能感!
dxpyg8gm4#
PHPStorm和其他IntelliJ IDE(商业)支持debugging XSLT。您可以逐步浏览文档并查看逐步生成的输出。
c6ubokkw5#
我几乎每天都在使用XSLT,已经有六七年了。
我发现XSLT的“printf风格”调试非常有效,以至于我从未从使用任何其他调试机制中获得过好处(我尝试过XMLSpy和Visual Studio)。有时候确实会发生这样的情况,我希望能够检查变量的值,但构建输出它的逻辑是一件麻烦的事情。但这种情况非常罕见。
有一个调试器可能会使 * 学习 * XSLT变得更容易(任何东西都会这样)。
flvlnr446#
在学习时,语法高亮编辑器通常对我来说就足够了(当然是在另一个窗口打开参考文档的情况下。
Kate是XML和XSLT的优秀编辑。
avwztpqn7#
Xselerator是一个很棒的XSL调试工具,它可以:
我已经用了很多年了,这是一个很好的工具。
tcbh2hod8#
针对使用
<xsl:message>
调试XSLT 3.0的解答:XSLT 3.0有一个新的
serialize()
函数,在xsl:message
指令中使用该函数会有所帮助。但是,对于新的
array
和map
类型,您需要使用adaptive序列化方法,而不是默认的XML序列化:serialize
当前的缺点是它不格式化输出。一个小的xpath-result-serializer XSLT project提供
ext:print()
和ext:println()
函数作为serialize()
的替代,它们格式化(并可选地着色)XSLT输出。输出文本使用为人类读者优化的Map/数组的缩写表示法,而不是解析器。对于具有上下文的XML节点,XPath位置与任何文本或属性值一起输出。
e0uiprwp9#
Microsoft Visual Studio也是一个很好的xslt调试工具。但是您必须安装