def getCategoriesAsList(element):
try:
print "I am {0}".format(element.getNodeID())
if element.hasChilds():
for value in element.getChildren().values():
print "{0} added to list".format(value.getNodeID())
return [value]+getCategoriesAsList(value)
else:
print "{0} added to list".format(element.getNodeID())
return [element]
except Exception as err:
print err
早上好! 我想在python中遍歷我的樹,我想將樹轉換成一個元素列表,並進行一些轉換。 問題是,當元素沒有子元素時,函數不會執行遞歸調用。我做了一些調試信息,但我無法理解這種行爲!遞歸呼叫被阻止
'如果element.hasChilds():'條件將跳轉到'else'並在沒有子節點的情況下返回元素。是不是? –
請給出一個輸入和當前和預期輸出的例子。 –
我的樹有7個級別,每個級別只有一個元素添加到列表中,並且不執行其他節點。 我的期待是一旦「元素」節點有孩子,遍歷它們並將孩子添加到列表中,並下到下一級檢查這個孩子的孩子,直到他是一片葉子。如果是將他添加到列表中,並且到達上一級以檢查循環中的下一個子項目 –