如何在Python中使用lxml dtd.validate函数获取xml文件的错误位置?

时间:2013-02-05 09:07:11

标签: python validation lxml dtd

我想检查与sample.dtd相关联的xml文件sample.xml的验证。但我无法得到错误的位置。我只是得到错误信息。我怎么能这样做?

import lxml.etree as ET
import codecs

f = codecs.open('sample.dtd')
dtd = ET.DTD(f)
root = ET.parse('newace_JK.xml')
print(dtd.validate(root))
print(dtd.error_log.filter_from_errors())

1 个答案:

答案 0 :(得分:1)

尝试使用单个日志条目而不是打印整个结果,例如

for error in dtd.error_log.filter_from_errors():
    print(error.message)
    print(error.line)
    print(error.column)

请参阅http://lxml.de/api/lxml.etree._LogEntry-class.html