2010-10-24 92 views
3

環境:Windows,Python,wxpython和Element樹作爲xml解析器。使用元素樹讀取動態xml

我正在開發一個獨立的地方,它讀取xml並創建一棵樹。 我的應用程序讀取XML和創建樹,但是當XML改變下一次(XML increases-我的意思是,當添加了兩個子元素時,深度)。應用無法讀取(邏輯失敗:()

對於如 我已經寫了一個邏輯,它可以讀取深度爲5的任何xml,但是當它讀取的深度超過5的xml時,它將失敗 請讓我知道如何讀取其深度爲動態的xml

+0

聽起來像問題可能在你的邏輯,爲什麼你不發佈它? – 2010-10-24 17:03:27

+0

@ Robert Kluin。嗨,我已經添加了我的示例代碼在不同的深度以下要點。請在這裏找到它 - http://gist.github.com/643697。 (要點:643697)。我的代碼可以讀取示例xml1,但無法讀取示例xml 2 – abhishek 2010-10-24 17:24:00

回答

2

您應該使用遞歸調用,更類似於:

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.' 

N所有的元素都具有「名稱」屬性。所以你需要調整它來匹配你確切的數據結構。

+0

感謝您提供的快速回復.xml,我上傳的是一個虛擬的。在我的應用程序中,每個元素都具有'name'屬性。 – abhishek 2010-10-24 18:08:07

+0

謝謝羅伯特。 – abhishek 2010-10-24 18:52:36