我有这个简单的功能,如果它们丢失,它会添加新元素:
def add_missing(root):
""" Add missing elements and return `root` """
for tag, missing_el in missing_tags.items():
for elem in root.iterfind(".//" + tag):
if elem.find(missing_el.tag) is None:
elem.append(missing_el)
print tostring(elem)
print tostring(root)
return root
但是,当我检查 root 是否包含缺少的元素时,我发现只有最后一个元素包含新附加的元素。
有人可以指出一种在迭代 etree 时修改它的方法吗?