使用ElementTree修改XML

nick01
<grandParent>
    <parent>
       <child>Sam/Astronaut</child>
    </parent>
</grandParent>

我想通过在父标记内添加另一个子标记来修改上述XML。我正在做这样的事情。

tree = ET.parse("test.xml")
a=ET.Element('parent')
b=ET.SubElement(a,"child")
b.text="Jay/Doctor"
tree.write("test.xml")

这是修改xml文件的正确方法吗?还有更好的方法吗?还是上面代码中我还要注意什么?

罗伯

您的代码将创建一棵全新的树并将Jay添加到其中。您需要将Jay连接到现有树,而不是新树。

尝试这个:

import xml.etree.ElementTree as ET

tree = ET.parse("test.xml")
a = tree.find('parent')          # Get parent node from EXISTING tree
b = ET.SubElement(a,"child")
b.text = "Jay/Doctor"
tree.write("test.xml")

如果要搜索特定的孩子,可以执行以下操作:

import xml.etree.ElementTree as ET
tree = ET.parse("test.xml")
a = tree.find('parent')
for b in a.findall('child'):
    if b.text.strip() == 'Jay/Doctor':
        break
else:
    ET.SubElement(a,"child").text="Jay/Doctor"
tree.write("test.xml")

注意a.findall()(类似于a.find(),但是返回所有命名元素)。xml.etree已经非常有限的搜索条件。您可以考虑使用lxml.etree及其.xpath()方法。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用ElementTree修改XML文件

来自分类Dev

使用ElementTree修改XML文件

来自分类Dev

使用ElementTree解析XML

来自分类Dev

使用elementtree解析xml网站

来自分类Dev

使用Python ElementTree解析XML

来自分类Dev

使用elementtree解析xml站点

来自分类Dev

Python ElementTree XML修改具有多个值的元素

来自分类Dev

使用Python修改XML

来自分类Dev

使用JDOM修改XML

来自分类Dev

使用ElementTree的递归XML解析python

来自分类Dev

使用ElementTree Python获取检索XML属性

来自分类Dev

使用ElementTree从XML提取数据的麻烦

来自分类Dev

使用python的ElementTree处理xml子对象

来自分类Dev

使用ElementTree顺序解析某些XML标签

来自分类Dev

在Python中使用ElementTree从XML提取数据

来自分类Dev

使用Python ElementTree从XML中提取值

来自分类Dev

使用xml子对象,Python中的ElementTree

来自分类Dev

使用 ElementTree 获取 XML 标签值

来自分类Dev

使用ElementTree解析XML中的XML节点值

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用Java修改xml版本

来自分类Dev

使用SAX修改XML文件

来自分类Dev

使用perl进行xml修改

来自分类Dev

使用sed修改xml文件

来自分类Dev

使用XMLDOM修改XML文件

来自分类Dev

使用ElementTree解析XML时使用名称空间

来自分类Dev

使用ElementTree和请求进行XML解析