如何调试lxml.etree.XSLTParseError: 无效表达式错误
我正在尝试找出为什么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,这种情况下没有简单的解决办法。相反,可能最简单的方法是结合使用模式验证和自定义逻辑,来找出错误发生的位置以及为什么会出错,以便向用户反馈。