如何在python xml.etree.ElementTree中的迭代器中删除节点

尼山斯·劳伦斯(Nishanth Lawrence)

在按getiterator()功能从根遍历所有节点的同时,如何删除当前节点

import xml.etree.ElementTree as ET
tree = ET.parse('file.xml')
root = tree.getroot()

for node in root.getiterator():
     #if some condition:
        #remove(node)
马丁·彼得斯(Martijn Pieters)

您无法在不知道父节点的情况下删除节点,但是该xml.etree软件包无法为您提供从给定节点访问父节点的任何方式。

解决此问题的唯一方法是匹配父节点:

for node in root.iter():
    if some_condition_matches_parent:
        for child in list(node.iter()):
            if some_condition_matches_child:
                node.remove(child)

如果切换到lxml库(该库实现相同的API,但具有其他增强功能),则可以从任何给定节点检索父节点:

node.getparent().remove(node)

注意,虽然纯Python实现Element.getiterator()返回一个列表对象,但在ElementTree模块的C实现中(在Python 2上单独导入,如果可用,则在Python 3上透明导入),该getiterator()方法返回一个实时生成器,该生成器需要复制一个制作。

最重要的是,该Element.getiterator()方法已在Python 3.2中弃用,并将在Python 3.9中完全删除。node.iter()在外部循环和list(node.iter())内部循环中都替换了它的用法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python(xml.etree.ElementTree)中的XML解析

来自分类Dev

Python XML etree - 如何读取值中的节点值?

来自分类Dev

Python xml.etree.ElementTree 问题

来自分类Dev

如何使用xml.etree.ElementTree有条件地将属性插入Python中的节点

来自分类Dev

在python etree中对XML进行排序

来自分类Dev

在Python中,如何使用xml.etree.ElementTree创建数据框?

来自分类Dev

如何使用 python 从soap响应中的多个命名空间获取数据:xml.etree.ElementTree

来自分类Dev

使用 Python xml.etree.ElementTree 遍历 XML 树的问题

来自分类Dev

从Python中的XML数据创建字典(使用xml.etree.ElementTree)

来自分类Dev

如何使用python(xml.etree.ElementTree)解决下一个迭代?

来自分类Dev

xml.etree.ElementTree getElementByID()?

来自分类Dev

xml.etree.ElementTree findall

来自分类Dev

xml.etree.ElementTree findall

来自分类Dev

如何使用xml.etree.ElementTree访问标签之间的文本

来自分类Dev

如何使用xml.etree.ElementTree访问标签之间的文本

来自分类Dev

python xml.etree.ElementTree追加到子元素

来自分类Dev

使用lxml.etree在Python中解析XML

来自分类Dev

使用Etree从XML中删除特定元素

来自分类Dev

etree xml解析和删除

来自分类Dev

Python xml.etree转义

来自分类Dev

Python xml.etree 问题

来自分类Dev

使用Python模块xml.etree.ElementTree解析有点复杂的XML并将值存储在List中

来自分类Dev

xml.etree.ElementTree >> Python >>如何访问子元素并进行断言

来自分类Dev

如何使用xml.etree.ElementTree Python格式化属性,前缀和标签

来自分类Dev

如何使用 xml.etree.ElementTree 在 xml 文件上添加子子项

来自分类Dev

如何使用 xml.etree.ElementTree 解析 XML 文件,其子项中有 HTML 内容

来自分类Dev

xml.etree.ElementTree-麻烦设置xmlns ='...'

来自分类Dev

使用xml.etree.ElementTree的Python xml解析不起作用

来自分类Dev

如何使用Python etree lxml xpath设置/替换xml中的值?

Related 相关文章

  1. 1

    python(xml.etree.ElementTree)中的XML解析

  2. 2

    Python XML etree - 如何读取值中的节点值?

  3. 3

    Python xml.etree.ElementTree 问题

  4. 4

    如何使用xml.etree.ElementTree有条件地将属性插入Python中的节点

  5. 5

    在python etree中对XML进行排序

  6. 6

    在Python中,如何使用xml.etree.ElementTree创建数据框?

  7. 7

    如何使用 python 从soap响应中的多个命名空间获取数据:xml.etree.ElementTree

  8. 8

    使用 Python xml.etree.ElementTree 遍历 XML 树的问题

  9. 9

    从Python中的XML数据创建字典(使用xml.etree.ElementTree)

  10. 10

    如何使用python(xml.etree.ElementTree)解决下一个迭代?

  11. 11

    xml.etree.ElementTree getElementByID()?

  12. 12

    xml.etree.ElementTree findall

  13. 13

    xml.etree.ElementTree findall

  14. 14

    如何使用xml.etree.ElementTree访问标签之间的文本

  15. 15

    如何使用xml.etree.ElementTree访问标签之间的文本

  16. 16

    python xml.etree.ElementTree追加到子元素

  17. 17

    使用lxml.etree在Python中解析XML

  18. 18

    使用Etree从XML中删除特定元素

  19. 19

    etree xml解析和删除

  20. 20

    Python xml.etree转义

  21. 21

    Python xml.etree 问题

  22. 22

    使用Python模块xml.etree.ElementTree解析有点复杂的XML并将值存储在List中

  23. 23

    xml.etree.ElementTree >> Python >>如何访问子元素并进行断言

  24. 24

    如何使用xml.etree.ElementTree Python格式化属性,前缀和标签

  25. 25

    如何使用 xml.etree.ElementTree 在 xml 文件上添加子子项

  26. 26

    如何使用 xml.etree.ElementTree 解析 XML 文件,其子项中有 HTML 内容

  27. 27

    xml.etree.ElementTree-麻烦设置xmlns ='...'

  28. 28

    使用xml.etree.ElementTree的Python xml解析不起作用

  29. 29

    如何使用Python etree lxml xpath设置/替换xml中的值?

热门标签

归档