تقنية

getAttribute في بايثون: هل النص الفارغ يعني غياب السمة؟

غياب السمة وتعيينها فارغة يعطيان نصًا فارغًا
القيمة المعادة متساوية. [1] [2] [3]

نقارن غياب سمة بقيمة فارغة مؤلفة. [1] [2] [3]

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

لا؛ النص الفارغ وحده لا يفصل الحالتين. [1] [2] [3]

  • ننشئ عنصر own في الذاكرة. [1] [2] [3]
  • عند غياب x: القيمة '' والوجود False. [1] [2] [3]
  • بعد تعيين x فارغة: القيمة نفسها والوجود True. [1] [2] [3]
  • نستخدم hasAttribute لفحص الوجود. [1] [2] [3]
  • اختبرنا 3.12.14 دون قراءة XML. [1] [2] [3]

المثال

from xml.dom import minidom as m
i=m.getDOMImplementation()
d=i.createDocument(None,'own',None)
e=d.documentElement
print(repr(e.getAttribute('x')),
 e.hasAttribute('x'))
e.setAttribute('x','')
print(repr(e.getAttribute('x')),
 e.hasAttribute('x'))
d.unlink()

[1] [2] [3]

المخرجان '' False ثم '' True. [1] [2] [3]

القيمة والوجود

القيمة متساوية في الحالتين، لكن اسم السمة موجود في الثانية. فحص النص لا يغني عن فحص الوجود. [1] [2] [3]

hasAttribute تعيد False للغائبة وTrue للفارغة الموجودة
فحص وجود الاسم. [1] [2] [3]

حدود المثال

السمة مؤلفة بلا نطاق أسماء. لم نختبر تحليل ملف أو DTD أو صلاحية مستند؛ لا نعمم على واجهات أخرى. [1] [2] [3]

المراجع

  1. Python: minidom
  2. CPython 3.12.14: minidom.py
  3. Python: DOM Element
  4. موضوع تك: لغة بايثون — مفردات
  5. موضوع تك: تطبيقات بايثون — مفردات

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