تقنية

cloneNode في بايثون: هل النسخة السطحية تفقد السمات؟

سمة موجودة دون أبناء في النسخة
النسخة. [1] [2]

صفر الأبناء لا يعني غياب السمات. [1] [2]

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

نسخة العنصر السطحية تحتفظ بالسمات وتترك الأبناء دون نسخ. [1] [2]

  • أنشأنا سمة tag=bud وابنًا leaf. [1] [2]
  • استعملنا cloneNode(False). [1] [2]
  • السمة في النسخة تعيد bud. [1] [2]
  • عدد أبناء النسخة صفر، والأصل واحد. [1] [2]
  • اختبرنا 3.12.14 دون تحليل XML. [1] [2]

المثال

from xml.dom.minidom import Document
doc=Document()
root=doc.createElement('own')
root.setAttribute('tag','bud')
root.appendChild(
    doc.createElement('leaf'))
clone=root.cloneNode(False)
print(clone.getAttribute('tag'))
print(len(clone.childNodes))
print(len(root.childNodes))

[1] [2]

السمات والأبناء

المصدر هنا ينسخ السمات قبل فحص العمق؛ ينسخ الأبناء عند تفعيله. المخرجات bud ثم 0 ثم 1. غياب الأبناء في النسخة لا يحذف ابن الأصل ولا يمنع نسخ السمة. [1] [2]

ابن الأصل ما زال موجودًا
الأصل. [1] [2]

النطاق

المثال لعنصر مؤلف بلا نطاق أسماء أو DTD. مع cloneNode(True) ينسخ الابن أيضًا. لا نختبر نسخ المستند كله أو صلاحية محتواه أو واجهات DOM أخرى. [1] [2]

المراجع

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

للتوسع: بحث عن لغات البرمجة

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