Esto parece ser un error en libxml, no en lxml en sí mismo, y ha estado allí desde 2006. Parece que no se puede solucionar fácilmente debido a problemas de compatibilidad hacia atrás.
¿Es posible mostrar números de línea más de 65535 cuando valida un archivo XML usando LXML?
-
05-07-2022 - |
Pregunta
Intento validar un archivo XML con alrededor de 1 millón de líneas usando LXML. Este es mi 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())
Pero descubrí que la salida siempre dice "65535: 0" si la línea por error excede 65535. es decir,
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).
Así que no puedo identificar dónde están las líneas anteriores. ¿Hay alguna solución?
Solución
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow