Oxygen XML Editor 的 XSLT 调试需用 Saxon-EE 引擎、正确配置调试启动器、在有效指令行设断点、使用 file:/ 格式路径,并确保 XSLT 3.0 声明版本以支持 xsl:try 和高阶函数调试。

Oxygen XML Editor 对 XSLT 开发和调试的支持非常成熟,但默认配置下容易卡在“看不到输出”或“断点不生效”上。关键在于确认你用的是 XSLT 2.0/3.0 引擎、正确设置了调试启动器,并且源 XML 和样式表路径是相对 Oxygen 工作区解析的(不是绝对路径乱跳)。
怎么设置 XSLT 调试启动器(避免“Debugger not available”错误)
Oxygen 不会自动启用调试,必须手动绑定一个支持调试的处理器——Saxon-EE 是唯一被 Oxygen 官方完整支持调试的引擎(Saxon-HE 和 Xalan 不支持断点)。
- 进入
Options → Preferences → XML / XSLT-FO / XQuery → Debuggers → XSLT Debugger - 勾选
Enable XSLT debugging - 在
Processor下拉菜单中选择Saxon-EE(需提前在Libraries页签里配置好saxon9ee.jar路径) - 确保
Use current document as input或指定正确的Input URL;如果输的是本地文件路径,用file:/前缀(如file:/C:/data/input.xml),别用C:这种 Windows 原生路径
怎么加断点并触发调试(为什么 F5 没反应)
断点只能加在 、、 或任意带 select/test 属性的指令行上——纯文本节点或注释行无法设断点。
- 在编辑器左侧灰色边栏单击即可添加断点(出现红点);悬停可查看是否被识别为“valid breakpoint location”
- 右键点击 XSLT 文件 →
Debug As → XSLT Transformation(不是“Run As”) - 若弹出
No valid input specified,说明没配Input URL或当前文档不是 well-formed XML;检查底部状态栏是否显示XML而非Text - 调试启动后,变量视图里
$input显示源树,$context是当前匹配节点,Templates标签页可跳转到任意模板
怎么调试 XSLT 3.0 的 xsl:try 和高阶函数
XSLT 3.0 特性依赖 Saxon-EE 且需显式声明版本,否则 Oxygen 会降级为 2.0 模式,导致 xsl:try 报错或函数不可见。
- 在 XSLT 文件首行确认有
-
xsl:try内部的断点只有在异常实际抛出时才触发;正常流程下xsl:catch块不会停,除非你在其中某行手动加断点 - 调试
function时,调用处(如{my:func($x)})不能设断点,必须进到函数定义体内部第一行设 - 使用
map{}或array{}时,变量视图里展开后可能显示[object Object]—— 这是 Oxygen 的显示限制,实际值可用watch表达式输入?size()或?1查看
File not found
最容易被忽略的是:Oxygen 的调试会话不继承 shell 环境变量,所以如果你在 xsl:document 中写相对路径,它基于的是 XSLT 文件所在目录,而不是你打开 Oxygen 时的当前工作目录。路径问题引发的空白输出,比逻辑错误更难排查。
相关文章
怎么在Sublime Text中安装XML格式化插件
WIX项目文件怎么写 Windows Installer XML (WiX)入门教程
怎么在Word文档中嵌入XML数据
C++ Xerces-C++库怎么安装和使用 XML解析
如何用Excel公式(FILTERXML)直接解析XML字符串
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具









