NodeJS中使用xslt3编译XSLT样式表遇参数错误求助
解决Saxon-JS xslt3命令在PowerShell中的参数解析错误
问题根源
你遇到的是Windows PowerShell的参数解析特性问题:PowerShell会将带冒号的参数(如-ns:##html5)误识别为PSDrive(驱动器)引用,导致工具无法正确读取参数值,这不是xslt3工具本身的bug。
具体解决方法
方法1:用引号包裹带特殊字符或冒号的参数
将包含冒号或特殊符号(如##)的参数整体用双引号括起来,避免PowerShell解析错误。修正后的命令示例:xslt3 "-xsl:source.xsl" "-export:source.sef.json" -t "-ns:##html5"方法2:改用空格分隔参数与值
放弃冒号分隔的写法,直接用空格将参数名和值分开,PowerShell能正确识别这种格式:xslt3 -xsl source.xsl -export source.sef.json -t -ns "##html5"方法3:切换到Command Prompt(cmd)执行
如果不想折腾PowerShell的参数规则,直接打开cmd窗口,进入目标目录后执行原文档中的命令即可,cmd不会对冒号做特殊解析:xslt3 -xsl:source.xsl -export:source.sef.json -t -ns:##html5
验证步骤
- 先执行简化命令测试基础功能:
确认是否能成功生成xslt3 -xsl source.xsl -export source.sef.jsonsource.sef.json文件。 - 再逐步添加
-t(跟踪日志)和-ns参数,用上述方法包裹特殊值,验证每一步是否正常运行。
内容的提问来源于stack exchange,提问作者Nelibo
相关产品推荐
相关产品推荐

