تقنية

Parse في Expat: هل نجاح الجزء يعني اكتمال XML؟

نجاح الجزء وخطأ النهاية
الجذر غير مغلق. [1] [2]

نفحص جزء XML مؤلفًا. [1] [2]

الخلاصة السريعة

لا؛ نجاح الجزء غير النهائي لا يثبت الاكتمال. [1] [2]

  • نرسل <r> دون وسم إغلاق. [1] [2]
  • مع isfinal=False، يعيد المثال 1. [1] [2]
  • إنهاء المدخل بـTrue يرفع ExpatError. [1] [2]
  • يجوز إرسال نص فارغ في الاستدعاء النهائي. [1] [2]
  • incomplete تسمية نطبعها، لا رسالة الاستثناء. [1] [2]
  • نطاقنا 3.12.14 دون DTD أو نطاقات أسماء أو مدخلات غير موثوقة. [1] [2]

المثال

from xml.parsers import expat as e
p=e.ParserCreate()
print(p.Parse('<r>',False))
try:p.Parse('',True)
except e.ExpatError:
 print('incomplete')

[1] [2]

المخرجان 1 ثم incomplete. [1] [2]

الجزء والنهاية

النجاح الأول يخص استدعاء غير نهائي. الجذر ما زال غير مغلق؛ عند إعلان النهاية يظهر الخطأ. [1] [2]

جزء غير نهائي ثم نهاية فارغة
خطوتان للمحلل نفسه. [1] [2]

نطبع incomplete داخل فرع الاستثناء. يجب أن يكون الاستدعاء الأخير نهائيًا؛ الفراغ وحده لا يغلق الجذر. [1] [2]

حدود المثال

نص مؤلف في الذاكرة؛ لم نقرأ ملفًا أو نفحص DTD أو أسماء نطاقات أو مدخلات غير موثوقة أو كل الإصدارات. [1] [2]

المراجع

  1. Python: xml.parsers.expat
  2. CPython 3.12.14: pyexpat.c
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.