LXML을 사용하여 XML 파일을 검증 할 때 65535 이상을 표시 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/19826050

  •  05-07-2022
  •  | 
  •  

문제

LXML을 사용하여 약 1 백만 줄의 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).

따라서 위의 선이 어디에 있는지 식별 할 수 없습니다. 솔루션이 있습니까?

도움이 되었습니까?

해결책

이것은 a libxml의 버그, LXML 자체가 아닙니다, 2006 년부터 그곳에있었습니다. 거꾸로 호환성 문제로 인해 쉽게 고칠 수없는 것으로 보입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top