如何调试lxml.etree.XSLTParseError: 无效表达式错误

5 投票
1 回答
1929 浏览
提问于 2025-05-01 01:16

我正在尝试找出为什么lxml无法解析一个包含多个xml:include的XSL文档,这个文档有一个“根”文档。我收到了一个错误信息:

Traceback (most recent call last):
File "s.py", line 10, in <module>
  xslt = ET.XSLT(ET.parse(d))
File "xslt.pxi", line 409, in lxml.etree.XSLT.__init__ (src/lxml/lxml.etree.c:151978)
lxml.etree.XSLTParseError: Invalid expression

这个错误信息告诉我在lxml的源代码中出错的位置,但有没有办法通过lxml获取更多关于XSL文档中错误的具体信息,或者我应该使用其他方法吗?我想提供一个接受XSL文档的服务,所以我没有XML编辑器来手动调试。不过,我希望能给出一些反馈,告诉用户为什么转换没有成功。

暂无标签

1 个回答

-1

从异常的属性来看,我发现它有一个错误日志,但对于像xpath这样的错误,日志只包含错误在xpath中的具体位置,所以这并不是特别有用。对于我描述的使用场景,用户可以随意提交XSLT,这种情况下没有简单的解决办法。相反,可能最简单的方法是结合使用模式验证和自定义逻辑,来找出错误发生的位置以及为什么会出错,以便向用户反馈。

撰写回答