我正在尝试放置几个(现有的)XML元素< b>并入元素< a>,因此
<root>
<a/>
<b id="one"/>
<b id="two"/>
</root>
变为
<root>
<a>
<b id="one"/>
<b id="two"/>
</a>
</root>
我试过这个:
findingA = root.find('a')
for b in root.findall('root/b'):
findingA.append(b)
root.remove(b)
但是这些该死的&lt; b&gt;不管怎么说都不会动起来。
答案 0 :(得分:0)
您正在<root>
元素下方搜索,但使用的路径“root / b”不匹配。 for循环得到一个空列表,什么都不做。
编辑:此解决方案仅适用于lxml
中的ElementTree实现,移动行为不适用于其他情况,在这种情况下请参考其他答案。
在lxml中,您不必删除元素b
,追加不会复制元素。
fA = root.find("a")
for b in root.findall("b"):
fA.append(b)
答案 1 :(得分:0)
root.findall()
从'root'开始,试试这个:
findingA = root.find('a')
for b in root.findall('b'):
findingA.append(b)
root.remove(b)