基本問題 - 當您構建樹時,如何在樹中「移動」。Python - lxml - 構建樹時如何在樹周圍「移動」
我可以填充第一級:
import lxml.etree as ET
def main():
root = ET.Element('baseURL')
root.attrib["URL"]='www.com'
root.attrib["title"]='Level Title'
myList = [["www.1.com","site 1 Title"],["www.2.com","site 2 Title"],["www.3.com","site 3 Title"]]
for i in xrange(len(myList)):
ET.SubElement(root, "link_"+str(i), URL=myList[i][0], title=myList[i][1])
這給了我喜歡的東西:
baseURL:
link_0
link_1
link_2
從那裏,我想從每個新節點的添加一個子樹,所以它看起來什麼像:
baseURL:
link_0:
link_A
link_B
link_C
link_1
link_2
我看不到如何「點」的子元素調用到下一個節點下來 - 我想:
myList2 = [["www.A.com","site A Title"],["www.B.com","site B Title"],["www.C.com","site C Title"]]
for i in xrange(len(myList2)):
ET.SubElement('link_0', "link_"+str(i), URL=myList2[i][0], title=myList2[i][1])
但拋出的錯誤:
TypeError: Argument '_parent' has incorrect type (expected lxml.etree._Element, got str)
因爲我給子元素調用一個字符串,而不是一個元素的參考。我也試過它作爲一個變量(即link_0' rather than
「link_0」`),並給出了一個全局缺失變量,所以我的引用顯然是不正確的。
如何將我的lxml構建器作爲父項指向孩子,然後編寫新的孩子?
無關:您可以[使用TreeBuilder和標記模塊的縮進文本構建xml樹](http://stackoverflow.com/a/12166627//4279) – jfs