Двойная запись тега в XML. Python. xml.etree.ElementTree
Никак не могу понять, почему создаётся тег с параметрами 2 раза подряд. Хотя должен создаётся новый дочерний тег всего один раз для каждого родительского тега.
doc = ET.parse('test_start.xml')
x = doc.find('shop')
y = x.find('offers')
for z in y.findall('offer'):
prm_nm = z.findall('param')
for zz in prm_nm:
aa = zz.attrib
nm = aa.get('name')
rez_po = nm.find('Цвет')
if rez_po == 0:
hr_cvet = hr_cvet+nm+' '+zz.text+','
se = ET.SubElement(z,'param') # Создаю новый элемент
se.set('name','Цвет')
se.text = hr_cvet[:-1]
z.append(se)
hr_cvet = ''
rez_po = ''
doc.write('test3.xml', encoding='utf-8') # записываю в новый файл
На выходе я имею вот такую неприятность:
<param name="Материал обивки">Ткань Велюр</param>
<param name="Наполнитель">Пенополиуретан</param>
<param name="Раскладной">Да</param>
<param name="Наличие подголовника">Нет</param>
<param name="Наличие декоративных подушек">Нет</param>
<param name="Стиль">Современный</param>
<param name="Подлокотники">Да</param>
<count>0</count><stock>0</stock>
<param name="Цвет">Цвет каркаса Венге,Цвет обивки Verona Wenge</param>
<param name="Цвет">Цвет каркаса Венге,Цвет обивки Verona Wenge</param>
</offer>