سؤال

البيئة: Windows و Python و Wxpython و Element Tree كـ XML Parser.

أنا أقوم بتطوير قائمة بذاتها حيث تقرأ XML وتنشئ شجرة. يقرأ طلبي XML ويقوم بإنشاء شجرة ولكن عندما يتغير XML في المرة القادمة (عندما يزداد عمق XML- أقصد عند إضافة عنصرين طفل). فشل التطبيق في القراءة (فشل المنطق :()

على سبيل المثال ، لقد كتبت منطقًا يمكنه قراءة أي XML له عمق 5. ولكن عندما يقرأ XML بعمق أكثر من 5 ، يفشل. واسمحوا لي أن أعرف كيف أقرأ XML الذي يكون عمقه ديناميكيًا.

هل كانت مفيدة؟

المحلول

يجب عليك استخدام المكالمات العودية ، شيء أكثر مثل:

def recurse_tree(node):
    tree = {}
    for element in node:
        name = element.get('name')
        tree[name] = recurse_tree(element)
    if tree:
        return tree
    else:
        return 'No children.'

ليس كل عناصرك لها سمات "الاسم". لذلك ستحتاج إلى ضبط هذا لمطابقة بنية البيانات الدقيقة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top