You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下xsltproc执行XSLT未输出定义标签及命令参数报错问题

问题1:ata:developement主标签未输出的排查方案

  • 根因:你定义的match="/ata:exchange"模板未被xsltproc触发,处理器调用了默认内置模板处理输入XML,内置模板会递归跳过根节点直接处理子元素,因此最终只输出了子节点,和你给出的实际输出结果完全匹配。XMLSpy的XSLT处理器容错性更高,对部分xsltproc严格校验的异常场景做了兼容,因此运行结果符合预期。
  • 解决步骤:
    1. 调整匹配规则,使用不依赖命名空间前缀的匹配方式避免解析异常,将原有匹配规则修改为:
    <xsl:template match="/*[local-name()='exchange' and namespace-uri()='http://tmme.toyota.com/ata/exchange/1.1']">
    
    1. 检查XSL文件是否带有UTF-8 BOM头,SUSE下的xsltproc解析带BOM的XSL文件时可能出现模板匹配异常,可执行sed -i '1s/^\xEF\xBB\xBF//' file.xsl命令去除BOM头。
    2. ata:developement标签上重复声明的xmlns:ata可以删除,stylesheet节点已经全局声明了该命名空间,无需重复定义。

问题2:xsltproc命令执行报错的排查方案

  • 根因:xsltproc的参数顺序不符合规范,-o属于全局选项,必须放在样式表文件和输入XML文件的最前面。你之前把-o放在所有参数末尾,xsltproc会把-o和后面的fileoutput.xml都当成输入XML文件尝试解析,因此会抛出无法加载、解析-o实体的错误,退出码6是xsltproc预定义的「无法加载输入文件」错误码。
  • 正确执行命令:
xsltproc -o fileoutput.xml file.xsl fileinput.xml

内容的提问来源于stack exchange,提问作者Eric Koralewski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:15:04