Я пишу скрипт, который должен удалить родительские элементы из файла XML, если дочерний элемент соответствует элементу в CSV-файле. Операторы цикла и if работают корректно, однако, когда я добавляю удаление, он просто удаляет все из таблицы независимо от того, совпадает ли это или нет. Я не могу понять, почему он это делает.Python XML ElementTree Удаление всех элементов
cs = open('skus.csv', 'rb')
reader = csv.reader(cs)
tree = et.parse('christmas-dog-price.xml')
root = tree.getroot()
xmlns = {'pricebook': '{http://www.demandware.com/xml/impex/pricebook/2006-10-31}'}
price_table = root.find('.//{pricebook}price-table'.format(**xmlns))
product_id = [price_table.get('product-id') for price_table in root]
for sku in reader:
for product in product_id:
for price_table in root:
if sku[0] != product:
continue
if sku[0] == product:
root.remove(price_table)
tree.write('please-work.xml')
не должен ли этот 'tree.write ('please-work.xml')' находиться вне петель? –
, пожалуйста, поделитесь структурой xml и инициализацией переменных для 'product' и' root' и 'tree' –
@ XML-структура vikashSingh (без заголовков): <цена-таблица product-id =" tr-33373 "> <количество количества = "1"> 11.99 price-table> –