Неожиданный результат при использовании удаления lxml ⇐ 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
У меня есть 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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Python lxml.html SyntaxError: неверный предикат с XPath при использовании LXML
Anonymous » » в форуме Python - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Python lxml.html.parse не читает URL-адрес – или как получить request.get в lxml.html.dom?
Anonymous » » в форуме Python - 0 Ответы
- 94 Просмотры
-
Последнее сообщение Anonymous
-