Я пытаюсь создать сценарий, который зацикливает создание файла XML с увеличивающимися значениями для двух элементов.(IP-адрес, использующий netaddr, и увеличивающийся элемент tag / member, tag01 - tag10)
from netaddr import IPNetwork
import xml.dom.minidom
import lxml.etree as etree
import xml.etree.cElementTree as ET
ip = IPNetwork('10.10.10.0/24')
count = 1
tag = range(1,10)
uid = ET.Element("message")
type = ET.SubElement(uid, "type").text = "update"
payload = ET.SubElement(uid, "payload")
register = ET.SubElement(payload, "register")
entry = ET.SubElement(register, "entry", ip="11.11.11.11")
tag = ET.SubElement(entry, "tag")
ET.SubElement(tag, "member").text = "tag1"
tree = ET.ElementTree(uid)
while count <= 10:
elemtag = tree.findall(".//member")
for elemt in elemtag:
elemt.text = 'tag{}'.format(tag)
elemip = tree.findall(".//entry")
for elemi in elemip:
elemi.text = 'ip="{}"'.format(ip)
count += 1
ET.dump(uid)
print(count)
#tree.write("tmp.xml")
#x = etree.parse("tmp.xml")
#print etree.tostring(x, pretty_print=True)
#etree.parse("tmp.xml").write("pretty.xml", encoding="utf-8", pretty_print=True)
#os.system('tool.py -f pretty.xml')
Я выяснил, как создать XML, который мне нужен, с помощью ElementTree, и если я закомментирую свой цикл инапишите полученный xml, он правильный, хорошо выглядит и работает с инструментом, который его использует (ууу!).
<message>
<type>update</type>
<payload>
<register>
<entry ip="11.11.11.11">
<tag>
<member>tag1</member>
</tag>
</entry>
</register>
</payload>
</message>
Однако, когда я добавляю свой цикл для замены значений для двух элементов, я просто не могу понять, как это правильно, и я забиваю теги / элементы в дереве.
<message>
<type>update</type>
<payload>
<register>
<entry ip="11.11.11.11">ip="10.10.10.0/24"<tag><member>tag<Element 'tag' at
0x7f7b29d66c90></member></tag></entry>
</register>
</payload>
</message>
Я продолжаю пробовать разные вещи, чтобы заменить элементы, но они просто заканчиваются как различные сочетания неправильных, и я просто не могу понять, что это правильно.Надеюсь, кто-то может помочь мне понять, что я скучаю.Заранее спасибо!