Как удалить узел в xml с помощью ElementTree в Python?

Я прочитал здесь пример remove и пример здесь не применим ко мне.

Мой XML-файл читает:

 <A> <B>some text</B> <B>other text</B> <B>more text</B> </A> 

Я хочу, чтобы удалить второй <B></B> из xml. Я не знаю, какой текст он содержит. Но у меня есть индекс <B></B> , скажем index = 1, что означает, что я хочу удалить второй элемент (или узел).

У меня такой код:

 F = open('example.xml') self.tree = parse(F) self.root = self.tree.getroot() F.close() 

Поэтому в этом случае я хочу удалить self.root[1] .

Как это можно реализовать с помощью ElementTree?

Изменить: Сделал мой вопрос более ясным и конкретным.

  • Разбор XML или YML в OpenCV с помощью Python
  • HTTP POST-запрос и заголовки с вложениями MIME multipart / related и xop?
  • Python ElementTree не будет конвертировать неразрывные пробелы при использовании UTF-8 для вывода
  • LXML - Порядок сортировки тегов
  • Что это такое (cid: 51) в выводе pdf2txt?
  • Объединить два файла XML Python
  • экранирование символов в XML-файле с помощью python
  • Создание XML-документа с помощью BeautifulSoup
  • 2 Solutions collect form web for “Как удалить узел в xml с помощью ElementTree в Python?”

     In [1]: import xml.etree.ElementTree as ET In [2]: xmlstr=\ ...: """ ...: <A> ...: <B>some text</B> ...: <B>other text</B> ...: <B>more text</B> ...: </A> ...: """ In [3]: tree=ET.fromstring(xmlstr) In [4]: tree.remove(tree.findall('.//B')[1]) 

    Вы, ребята, не прямолинейны. Я объединил свои знания с ответами здесь и вышел с этим:

     for i, child in enumerate(self.root): if path == i: self.root.remove(child) break 

    где path – индекс элемента, который я хочу удалить.

    Python - лучший язык программирования в мире.