Невозможно создать подэлемент, предоставив его в виде строки разметки XML.Элемент <name>
должен быть создан с использованием SubElement
, точно так же, как <second>
.
Следующий код производит желаемый вывод:
from lxml import etree
page = etree.Element('first')
second = etree.SubElement(page, 'second')
name = etree.SubElement(second, 'name')
name.text = "This is my text"
doc = etree.ElementTree(page)
doc.write('a.xml', xml_declaration=True, encoding='utf-8')
Альтернативой является синтаксический анализ <name>This is my text</name>
строка в Element
объект и добавление его к родителю:
from lxml import etree
var1 = '<name>This is my text</name>'
name = etree.fromstring(var1)
page = etree.Element('first')
second = etree.SubElement(page, 'second')
second.append(name)
doc = etree.ElementTree(page)
doc.write('b.xml', xml_declaration=True, encoding='utf-8')