(Python 3.2)
Я использую etree
для анализа XML.Для этого я рекурсивно перебираю документ с iterdescendants()
.Итак, что-то вроде:
for elem in doc.iterdescendants():
if elem.tag == "tag":
pass # Further processing
Иногда я обрабатываю родительский тег, содержащий дочерние элементы, которые я хочу предотвратить в последующей рекурсии.Разве можно уничтожить потомков?
В моем начальном тестировании я пробовал:
for child in elem.getchildren(): child.clear()
По какой-то причине это приводит к тому, что элемент сразу после обработки elem
обрабатывается,Как будто элемент также удаляется.
Затем я попробовал это, что работает (в том смысле, что он удаляет родителя и его потомков, но не приводит к тому, что любые последующие братья и сестры родителя будут пропущены / затронуты).а также):
elem.clear()
Может кто-нибудь пролить свет на это?Спасибо,