基本问题 - 当你建造一棵树时,你如何在树中“移动”。
我可以填充第一级:
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
我看不到如何将 subElement 调用“指向”下一个节点 - 我试过:
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)
因为我给 subElement 调用一个字符串,而不是元素引用。我还尝试将它作为一个变量(即link_0' rather than
“link_0”`),它给出了一个全局缺失变量,所以我的引用显然是不正确的。
我如何将我的 lxml 构建器“指向”作为父母的孩子,并编写一个新的孩子?