所以我有一个XML,它有一行:

<factor-apply>1.2</factor-apply>

And this line is in my XML twice.

我想将案文for both lines改为:

<factor-apply>0.5</factor-apply>

我的代码如下:

import xml.etree.ElementTree as ET
xml_tree = ET.parse(TestXML.xml)
root = xml_tree.getroot()
root.find(".//{*}factor-apply").text = "0.5" 
ET.tostring(root)

现在,这改变了我的XML中的第一个因素行,但没有改变第二个因素行.

我试着go 做

root.findall(".//{*}factor-apply").text = "0.5"

但我收到了错误消息

AttributeError                            Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_5072\1499665917.py in <module>
      3 xml_tree = ET.parse(TestXML.xml)
      4 root = xml_tree.getroot()
----> 5 root.findall(".//{*}factor-apply").text = "0.5" 
      6 ET.tostring(root)

AttributeError: 'list' object has no attribute 'text'

我在想,如果Findall不起作用,我是不是必须做一个循环才能做到这一点? 如有任何建议,我们将不胜感激.

我希望能够对任何变量执行此操作.所以我有一条与出生日期相对应的线.但这行出现了10次,所以我想要更改所有10行,例如

推荐答案

试试像这样的东西

for factor in root.findall(".//{*}factor"):
     factor.text = "0.5" 

看看能不能行得通.如果是这样的话,您可能可以用任何其他元素名称替换factor.

Python相关问答推荐

如何处理嵌套的SON?

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

如何记录脚本输出

从dict的列中分钟

NumPy中条件嵌套for循环的向量化

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

删除marplotlib条形图上的底边

isinstance()在使用dill.dump和dill.load后,对列表中包含的对象失败

从Windows Python脚本在WSL上运行Linux应用程序

基于行条件计算(pandas)

如何防止Pandas将索引标为周期?

替换现有列名中的字符,而不创建新列

在二维NumPy数组中,如何 Select 内部数组的第一个和第二个元素?这可以通过索引来实现吗?

30个非DATETIME天内的累计金额

如何在一组行中找到循环?

使用SeleniumBase保存和加载Cookie时出现问题

一个telegram 机器人应该发送一个测验如何做?""

我可以不带视频系统的pygame,只用于游戏手柄输入吗?''

如何在Python中自动创建数字文件夹和正在进行的文件夹?

当我定义一个继承的类时,我可以避免使用`metaclass=`吗?