我正在寻找python的lxml.etree的配方,它将反转元素的嵌套,转向:
<text>
<name>
<ref>foobar</ref>
</name>
</text>
成:
<text>
<ref>
<name>foobar</name>
</ref>
</text>
我觉得这很明显,但我没有看到它。
答案 0 :(得分:2)
这样的东西?
import lxml.etree as et
from lxml.builder import E
xml = """
<text>
<name>
<ref>foobar</ref>
</name>
</text>
"""
tree = et.fromstring(xml)
for name in tree.findall('name'):
text = name.find('ref').text
tree.replace(name, E.ref(E.name(text)))
print et.tostring(tree)