获取python libxml2中的xml错误行号

时间:2013-05-15 09:41:19

标签: python xml

我使用libxml2 python来解析我的xml并根据xsd文件对其进行验证。

当我收到架构验证错误时,我无法找到xml文件中的错误行号。

有办法吗?

为了更好地理解,我在下面粘贴了我的代码:

ctxt = libxml2.schemaNewParserCtxt("xsd1.xsd")

schema = ctxt.schemaParse()

del ctxt

validationCtxt = schema.schemaNewValidCtxt()

doc = libxml2.parseFile("myxml.xml")
iErrA1 = validationCtxt.schemaValidateDoc(doc)

#get the line number if there is error

更新

我尝试了libxml2.lineNumbersDefault(1),这可能使库能够收集行号。 然后我通过validationCtxt.setValidityErrorHandler(ErrorHandler,ErrorHandler)注册一个回调。 我得到了msg部分,但没有行号。 更多信息:我在xmlError中看到了一个行号成员,但是我不清楚如何在出现错误时将这个xmlError类型对象恢复。 还有一个全局函数lastError,它返回一个xmlError类型对象,但它总是返回'none',尽管有错误

0 个答案:

没有答案