如何依据TYPE标签匹配结果更新XML中的ID字段值?
按TYPE值更新XML中的ID标签
你已经完成了定位目标节点的第一步,接下来需要遍历匹配到的节点,找到其中的ID子元素并修改内容,完整实现代码如下:
import xml.etree.ElementTree as ET # 定义替换用的ID变量 NEW_ID1 = "你的FIRST类型新ID" NEW_ID2 = "你的SECOND类型新ID" # 解析XML文件 tree = ET.parse("sample.xml") root = tree.getroot() # 处理TYPE为FIRST的节点 for outer_node in root.findall(".//OUTER[TYPE='FIRST']"): id_element = outer_node.find("ID") if id_element: # 确保ID节点存在 id_element.text = NEW_ID1 # 处理TYPE为SECOND的节点 for outer_node in root.findall(".//OUTER[TYPE='SECOND']"): id_element = outer_node.find("ID") if id_element: id_element.text = NEW_ID2 # 写入修改后的XML,指定编码避免乱码 tree.write("sample.xml", encoding="utf-8", xml_declaration=True)
关键说明:
- 遍历
findall返回的所有匹配节点,逐个处理每个OUTER节点 - 用
find("ID")获取当前OUTER下的ID子元素,判断存在后修改其text属性(避免节点不存在时报错) - 保存时指定
encoding="utf-8"和xml_declaration=True,保证输出的XML格式正确且无乱码
如果后续需要支持更多TYPE值,只需复制对应的处理块,修改TYPE的匹配值和对应的ID变量即可。
内容的提问来源于stack exchange,提问作者LM10
相关产品推荐
相关产品推荐

