gpt4 book ai didi

xsd - 使用 lxml 验证 xml 文件时是否可以显示超过 65535 的行号?

转载 作者:行者123 更新时间:2023-12-02 02:34:04 25 4
gpt4 key购买 nike

我尝试使用 lxml 验证大约 100 万行的 xml 文件。这是我的代码。

import codecs
import lxml.etree as ET

xsd_file = codecs.open(r'test.xsd', 'rb', 'utf-8')
xml_file = codecs.open(r'test.xml', 'rb', 'utf-8')

xmlschema_doc = ET.parse(xsd_file)
xmlschema = ET.XMLSchema(xmlschema_doc)

doc = ET.parse(xml_file)

print (xmlschema.error_log.filter_from_errors())
<小时/>

但是我发现如果错误行超过 65535,输出总是显示“65535:0”。也就是说,

file:///C:test.xml:65535:0:ERROR:SCHEMASV:SCHEMAV_ELEMENT_CONTENT: Element 'word': Missing child element(s). 
file:///C:test.xml:65535:0:ERROR:SCHEMASV:SCHEMAV_ELEMENT_CONTENT: Element 'word': Missing child element(s).
file:///C:test.xml:65535:0:ERROR:SCHEMASV:SCHEMAV_ELEMENT_CONTENT: Element 'word': Missing child element(s).

所以我无法识别上面的行在哪里。有什么解决办法吗?

最佳答案

这似乎是 bug in libXML , not in LXML itself persay ,并且自 2006 年以来一直存在。由于向后兼容性问题,它似乎无法轻易修复。

关于xsd - 使用 lxml 验证 xml 文件时是否可以显示超过 65535 的行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19826050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com