我正在使用 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)注册一个回调。我得到了味精部分,但没有行号。更多信息:我在 xmlError 中看到了一个行号成员,但我不清楚当出现错误时如何取回这个 xmlError 类型的对象。还有一个全局函数lastError,它返回一个xmlError类型的对象,但它总是返回'none',尽管有错误