Как удалить узел из XML-документа в Python с помощью ElementTreePython

Программы на Python
Ответить
Anonymous
 Как удалить узел из XML-документа в Python с помощью ElementTree

Сообщение Anonymous »

Вот структура:



com.android.ide.eclipse.adt.ApkBuilder




org.eclipse.ui.externaltools.ExternalToolBuilder
auto,full,incremental,




и вот моя логика, которая определяет команду buildCommand, которую я хочу удалить (вторую), добавляет ее в список, а затем выполняет удаление.
import os;
import xml.etree.ElementTree as ET

document = ET.parse("foo");
root = document.getroot();
removeList = list()
for child in root.iter('buildCommand'):
if (child.tag == 'buildCommand'):
name = child.find('name').text
if (name == 'org.eclipse.ui.externaltools.ExternalToolBuilder'):
removeList.append(child)

for tag in removeList:
root.remove(tag)

document.write("newfoo")

В Python 2.7.1 есть команда удаления, но я получаю сообщение об ошибке при удалении:
Файл "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", строка 337, в удалении
self._children.remove(element)
ValueError: list.remove(x): x нет в списке
ОБНОВЛЕНИЕ:
*** Решено @martijn-pieters — правильная логика для второго цикла for:
for tag in removeList:
parent = root.find('bar')
parent.remove(tag)


Подробнее здесь: https://stackoverflow.com/questions/155 ... lementtree
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»