Isso parece ser um Bug em libxml, não está no próprio LXML Pervay, e existe desde 2006. Parece que ele não pode ser facilmente corrigido devido a problemas de compatibilidade com versões anteriores.
É possível mostrar números de linha mais de 65535 quando você valida um arquivo XML usando LXML?
-
05-07-2022 - |
Pergunta
Eu tento validar um arquivo XML com cerca de 1 milhão de linhas usando LXML. Este é o meu código.
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())
Mas descobri que a saída sempre diz "65535: 0" se a linha de erro exceder 65535. isto é, é, ou seja,
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).
Portanto, não consigo identificar onde estão as linhas acima. Existe alguma solução?
Solução
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow