يبدو أن هذا علة في libxml, ليس في LXML نفسه persay, ، وكان هناك منذ عام 2006. يبدو أنه لا يمكن إصلاحه بسهولة بسبب مشكلات التوافق مع الوراء.
هل من الممكن إظهار أرقام الأسطر أكثر من 65535 عند التحقق من صحة ملف XML باستخدام LXML؟
-
05-07-2022 - |
سؤال
أحاول التحقق من صحة ملف XML مع حوالي مليون سطر باستخدام LXML. هذا هو الكود الخاص بي.
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: 0" إذا كان الخط في الخطأ يتجاوز 65535. وهذا هو ،
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).
لذلك لا يمكنني تحديد مكان الخطوط المذكورة أعلاه. هل هناك أي حلول؟
المحلول
لا تنتمي إلى StackOverflow