Неожиданный результат при использовании удаления lxmlPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Неожиданный результат при использовании удаления lxml

Сообщение Гость »


У меня есть XML, и мне нужно удалить несколько типов тегов. Я использовал метод iter для проверки каждого элемента. Я заметил, что если есть вложенный элемент, его дочерний элемент также удаляется. Следующий тег не будет удален. Например, как показано ниже, тег delete2 является дочерним для тега delete1, и оба будут удалены. По какой-то причине раздел тегов не может быть удален. Это ошибка? Или я что-то пропустил? Спасибо.
# %% из lxml импортировать etree # неожиданный вывод при удалении вложенных элементов xml_str = """ """ корень = etree.fromstring(xml_str) для элемента в root.iter(): is_remove = Ложь если element.tag == "delete1": is_remove = Истина если element.tag == "delete2": is_remove = Истина if element.tag == "раздел" и element.attrib.get("name") == "удалить": is_remove = Истина print(f"{element} {is_remove}") если is_remove: element.getparent().remove(элемент) print(etree.tostring(root,coding="utf-8").decode("utf-8")) неожиданный результат: False False Ложь True True
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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