تقنية

indent في ElementTree: هل ينسق العرض فقط؟

indent تغير حقول الفراغات في شجرتنا.
تتغير بيانات الشجرة.

indent تضيف فراغات إلى الشجرة لتنسيقها بصريًا؛ تتغير بيانات نصية فيها. [1]

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

لا؛ تتغير حقول نصية داخل الشجرة نفسها. [1]

  • indent تضيف فراغات إلى الشجرة لتنسيقها بصريًا؛ تتغير بيانات نصية فيها. [1]
  • text نص قبل أول ابن أو الإغلاق؛ tail نص بعد إغلاق العنصر؛ space يحدد فراغات كل مستوى. [1]
  • على CPython 3.12.14، root.text وleaf.tail وseed.tail في مثالنا كلها None قبل indent. [1]
  • بعدها: root.text وleaf.tail سطر جديد ومسافتان؛ seed.tail سطر جديد؛ يبقى leaf.text هو bud هنا. [1]
  • تحكم: يبقى الابنان نفسيهما وraw دون تغيير؛ تطابق الفراغات قيمًا مؤلفة مستقلة، بتكوين السطر والمسافات. [1]

التنسيق يغير بيانات

indent تضيف فراغات إلى الشجرة لتنسيقها بصريًا؛ تتغير بيانات نصية فيها. [1]

النص والفراغات

text نص قبل أول ابن أو الإغلاق؛ tail نص بعد إغلاق العنصر؛ space يحدد فراغات كل مستوى. [1]

شجرة قبل التنسيق

على CPython 3.12.14، root.text وleaf.tail وseed.tail في مثالنا كلها None قبل indent. [1]

import xml.etree.ElementTree as ET raw="<root><leaf>bud</leaf><seed/></root>" root=ET.fromstring(raw) leaf=root.find("leaf");seed=root.find("seed") ET.indent(root,space=" ") [1]

يبقى ابنا root نفسيهما بعد indent هنا.
يبقى الابنان.

الحالة والتحكم

بعدها: root.text وleaf.tail سطر جديد ومسافتان؛ seed.tail سطر جديد؛ يبقى leaf.text هو bud هنا. [1]

print(repr(root.text),repr(leaf.tail),repr(seed.tail)) print(leaf.text,len(root)) [1]

تحكم: يبقى الابنان نفسيهما وraw دون تغيير؛ تطابق الفراغات قيمًا مؤلفة مستقلة، بتكوين السطر والمسافات. [1]

المراجع

  1. Python ElementTree

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

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