我使用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',尽管有错误