gpt4 book ai didi

python - 如何使用python查找xml文件中的元素并替换同名元素的值?

转载 作者:行者123 更新时间:2023-12-01 09:20:09 30 4
gpt4 key购买 nike

我试图找到元素“name”中不是“None”的所有值,并将它们替换为新值“Anderson”。所以我希望把“Tom”、“John”和“Mary”这两个名字换成“Anderson”,但是7777号的名字“None”不会改变。

<aaa>
<bbb>
<name>Tom</name><number>1111</number>
<name>Tom</name><number>2222</number>
<name>John</name><number>3333</number>
</bbb>
<ccc>
<name>None</name><number>7777</number>
<name>Mary</name><number>8888</number>
</ccc>
</aaa>

我只知道如何使用“tree.find()”来替换特定元素的一个值,但我不知道如何查找和替换所有元素。

例如:

a = tree.find('aaa/bbb/name')
tree.find('aaa/bbb/name').text = 'Anderson'

有人可以给我一个达到要求的例子吗?非常感谢。

最佳答案

以下 XPath 表达式可以检索您请求的节点 .//name[text()!='None'] ElementTree 的 XPath 支持非常有限,我不确定它是否支持text() 函数。

另一种选择是:

for name in tree.findall(".//name"):
if name.text == 'None': continue
# Do stuff here
name.text = "Anderson"

https://docs.python.org/3.5/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findall

关于python - 如何使用python查找xml文件中的元素并替换同名元素的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852653/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com