Похоже, вы пытаетесь создать атрибут, а не дочерний элемент.(По-прежнему сложно сказать, поскольку имена элементов / атрибутов в вашем XML не совпадают с именами в вашем коде.)
Чтобы создать атрибут, вы можете использовать set()
.
Пример для создания XML в вашем примере ...
from lxml import etree
var = "dem1" # A variable isn't needed, but I included it anyway since your original code had it.
root = etree.Element("x")
root.set("Name", var)
for x in range(1, 3):
elem = etree.Element("y")
elem.set("Name", "dem{}".format(x + 1))
elem.set("Value", str(x))
root.append(elem)
etree.dump(root)
Вывод ...
<x Name="dem1">
<y Name="dem2" Value="1"/>
<y Name="dem3" Value="2"/>
</x>