Я ищу рецепт для lxml.etree Python, который обратит вложенность элементов, превращая:
<text> <name> <ref>foobar</ref> </name> </text>
в:
<text> <ref> <name>foobar</name> </ref> </text>
У меня есть чувствоэто очевидно, но я этого не вижу.
Как то так?
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)