0

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

4

0 回答 0