تقنية

normalize في minidom: هل تضيف مسافة بين العقد النصية؟

minidom; own:Text("bud")|Text("")|Text("leaf"); own.normalize(); 3 -> 1; Text("budleaf")
دمج متجاور.

normalize تدمج العقد النصية المتجاورة؛ لا تضيف مسافة في مثالنا. [1] [2]

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

لا؛ الناتج budleaf، دون مسافة. [1] [2]

  • normalize تدمج العقد النصية المتجاورة؛ لا تضيف مسافة في مثالنا. [1] [2]
  • على CPython 3.12.14 ننشئ Document وعنصر own بثلاث Text: "bud" و"" و"leaf"، دون محلل ملفات. [1] [2]
  • بعد own.normalize() يصبح العدد 1 والنص budleaf، بعدما كان عدد الأبناء 3. [1] [2]
  • التنفيذ يستبعد النص الفارغ ويجمع data للنصين المتجاورين؛ لا يدرج فاصلة بينهما. [1] [2]
  • تحكم مستقل: Text ثم Element("gap") ثم Text تبقى ثلاثة أبناء؛ العنصر يفصل النصين "bud" و"leaf". لا نختبر تطبيع Unicode أو CDATA أو تحليل الملفات أو التسلسل النصي. [1] [2]

شرط التجاور

normalize تدمج العقد النصية المتجاورة؛ لا تضيف مسافة في مثالنا. [1] [2]

ثلاث عقد مؤلفة

على CPython 3.12.14 ننشئ Document وعنصر own بثلاث Text: "bud" و"" و"leaf"، دون محلل ملفات. [1] [2]

عدد ونص

بعد own.normalize() يصبح العدد 1 والنص budleaf، بعدما كان عدد الأبناء 3. [1] [2]

from xml.dom.minidom import Document d=Document();own=d.createElement("own") for text in ("bud","","leaf"): own.appendChild(d.createTextNode(text)) print(len(own.childNodes)) own.normalize() print(len(own.childNodes),own.firstChild.data) [1] [2]

minidom; control:Text("bud")|Element("gap")|Text("leaf"); control.normalize(); 3 -> 3
عنصر فاصل.

تنفيذ وعنصر فاصل

التنفيذ يستبعد النص الفارغ ويجمع data للنصين المتجاورين؛ لا يدرج فاصلة بينهما. [1] [2]

control=d.createElement("control") control.appendChild(d.createTextNode("bud")) control.appendChild(d.createElement("gap")) control.appendChild(d.createTextNode("leaf")) control.normalize() print(len(control.childNodes),control.firstChild.data,control.lastChild.data) [1] [2]

تحكم مستقل: Text ثم Element("gap") ثم Text تبقى ثلاثة أبناء؛ العنصر يفصل النصين "bud" و"leaf". لا نختبر تطبيع Unicode أو CDATA أو تحليل الملفات أو التسلسل النصي. [1] [2]

المراجع

  1. Python Node.normalize
  2. CPython minidom

للتوسع: لغات البرمجة.

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