1 回答

TA贡献2037条经验 获得超6个赞
您的问题与其说是关于如何“替换 XML 值”,不如说是关于如何“跟踪”您在循环内迭代了多少次。
你想要的是enumerate()
。
让我们用一个简单的例子来试试看。
我有一个包含星期几及其名称的文件,名为week.xml:
<week>
<day>
<name>Monday</name>
</day>
<day>
<name>Tuesday</name>
</day>
<day>
<name>Wednesday</name>
</day>
<day>
<name>Thursday</name>
</day>
<day>
<name>Friday</name>
</day>
<day>
<name>Saturday</name>
</day>
<day>
<name>Sunday</name>
</day>
</week>
让我们使用值列表替换它们的名称:
import xml.etree.ElementTree as ET
tree = ET.parse('week.xml')
root = tree.getroot()
short_days = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']
for idx, day in enumerate(root.findall("day")):
day.find("name").text = short_days[idx]
tree.write("short_week.xml")
这是名为short_week.xml的新文件:
<week>
<day>
<name>MON</name>
</day>
<day>
<name>TUE</name>
</day>
<day>
<name>WED</name>
</day>
<day>
<name>THU</name>
</day>
<day>
<name>FRI</name>
</day>
<day>
<name>SAT</name>
</day>
<day>
<name>SUN</name>
</day>
</week>
添加回答
举报