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

马文·H
  <storage>
    <record>
      <values>
        <points>99999999</points>
        <points>Mr</points>
        <points>Marvin</points>
        <points>Homes</points>
        <points>hardware</points>
        <points>true</points>
        <points>de</points>
        <points>6</points>
        <points>false</points>
      </values>
    </record>
  </storage>

你好,

我正在尝试使用python(xml.etree.ElementTree)更改一些xml值。这只是xml数据的一小部分。

appelation=re.compile("Mr")
for fname in root.iter('points'):

    if appelation.match(str(pTest)):
        fname.text="New Mr/Mrs"
        ## here i am trying to edit the next iter (<points>Marvin</points>)
        ##fname.next().text="New name" -> doesnt work

任何建议如何解决下一个迭代?xml文件具有许多称为<“ points”>的标记,并且值始终是不同的。

海武

我假设您正在使用,xml.etree.ElementTree因为它是标准库的一部分。考虑以下代码段:

appelation = re.compile('Mr')
points = root.iter('points')
for node in points:
    if appelation.match(node.text):
        node.text = 'Monsieur'
        node = next(points)
        node.text = 'Francois'
        break

ElementTree.dump(根目录)

在此代码段中,points是一个可迭代的代码,我们将使用它来获取下一个要点并进行搜索。找到要查找的节点(Mr)后,我们可以对该节点和下一个节点进行操作(通过调用next所述可迭代对象)。

输出:

<storage>
    <record>
      <values>
        <points>99999999</points>
        <points>Monsieur</points>
        <points>Francois</points>
        <points>Homes</points>
        <points>hardware</points>
        <points>true</points>
        <points>de</points>
        <points>6</points>
        <points>false</points>
      </values>
    </record>
  </storage>

更新

如果要修改此节点,下一个节点和上一个节点,请执行以下操作:那么您需要跟踪先前的节点,因为无法迭代返回。最简单的方法是使用堆栈(alistcollections.dequewill做):

appelation = re.compile('Mr')
points = root.iter('points')
nodes_stack = []
for node in points:
    if appelation.match(node.text):
        # Modify this node
        node.text = 'Monsieur'

        # Modify next node
        next_node = next(points)
        next_node.text = 'Francois'

        # Modify previous node
        previous_node = nodes_stack.pop()
        previous_node.text = 'modified'

        # Keep popping the stack the get to previous nodes
        # in reversed order

        ElementTree.dump(root)
        break
    else:
        nodes_stack.append(node)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

xml.etree.ElementTree getElementByID()?

来自分类Dev

xml.etree.ElementTree findall

来自分类Dev

xml.etree.ElementTree findall

来自分类Dev

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

来自分类Dev

Python xml.etree.ElementTree 问题

来自分类Dev

ElementTree解析Python中的下一个标签

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何检查for循环中的下一个迭代?

来自分类Dev

如何迭代Ruby中的下一个元素?

来自分类Dev

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

来自分类Dev

使用xml.etree.ElementTree XML解析子元素

来自分类Dev

使用xml.etree.ElementTree搜索XML元素树的属性

来自分类Dev

使用xml.etree.ElementTree(python)解析XML时,如何区分常规空格和转义空格(&#32;)

来自分类Dev

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

来自分类Dev

xml.etree.ElementTree iterparse()仍在使用大量内存?

来自分类Dev

使用html5lib和xml.etree.ElementTree

来自分类Dev

无法使用xml.etree.ElementTree解析html

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

将xpath与lxml.etree._ElementTree一起使用

来自分类Dev

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

Related 相关文章

  1. 1

    xml.etree.ElementTree getElementByID()?

  2. 2

    xml.etree.ElementTree findall

  3. 3

    xml.etree.ElementTree findall

  4. 4

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

  5. 5

    Python xml.etree.ElementTree 问题

  6. 6

    ElementTree解析Python中的下一个标签

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

    如何检查for循环中的下一个迭代?

  15. 15

    如何迭代Ruby中的下一个元素?

  16. 16

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

  17. 17

    使用xml.etree.ElementTree XML解析子元素

  18. 18

    使用xml.etree.ElementTree搜索XML元素树的属性

  19. 19

    使用xml.etree.ElementTree(python)解析XML时,如何区分常规空格和转义空格(&#32;)

  20. 20

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

  21. 21

    xml.etree.ElementTree iterparse()仍在使用大量内存?

  22. 22

    使用html5lib和xml.etree.ElementTree

  23. 23

    无法使用xml.etree.ElementTree解析html

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

    将xpath与lxml.etree._ElementTree一起使用

  29. 29

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

热门标签

归档