我知道可以使用element.insert(old_element, new_element)
添加子元素,并且可以通过顺序替换父级直到root来插入嵌套的子元素 - hovewever是否存在执行此操作的函数或方法没有上述父母的替代品?即。
>>> et.tostring(el)
>>>>
"""
<b>
<c/>
<c/>
<d>
<e/>
<p>
<a>
<q/>
<q/>
<a/>
</p>
<e/>
<d>
<c/>
<c/>
<b>
"""
>>>> new = insert_nested_child_element(el, "./d/e/p/a", 3, et.Element('new'))
>>>> et.tostring(new)
"""
<b>
<c/>
<c/>
<d>
<e/>
<p>
<a>
<q/>
<q/>
<new/>
<a/>
</p>
<e/>
<d>
<c/>
<c/>
<b>
"""
答案 0 :(得分:0)
Subelements带有根树数据,因此要更新root用户updated_subelement.getroottree().getroot()
:
>>> nested_child_parent_results = el.xpath("./d/e/p/a")
>>> nested_child_parent = nested_child_parent_results[0]
>>> nested_child_parent.getroottree().getroot()