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

时间:2014-11-01 18:50:44

标签: python xml debugging xslt lxml

我试图找出为什么lxml无法解析由具有各种xml:include s的“根”文档组成的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 个答案:

答案 0 :(得分:-1)

查看异常的属性,我看到它有一个error_log,但是对于xpath错误(例如),日志只包含有关 xpath内的信息,错误是,所以它不是特别有用。对于我描述的用例,让任意用户提交XSLT,并不是按钮式方法。相反,最好使用模式验证和自定义逻辑的组合来找出错误的位置以及为了向用户报告错误的原因。