使用Python更新XML文件:添加新UserName及对应FeatureIds
实现方案
你可以直接用Python内置的xml.etree.ElementTree模块完成需求,无需安装第三方依赖,完整实现代码如下:
import xml.etree.ElementTree as ET # 配置参数 xml_path = "你的XML文件路径.xml" # 替换为你本地的XML文件路径 new_username = "john@abc.com" new_feature_ids = [3,5,6] insert_position = 0 # 0表示插入到用户列表最开头,改为其他数字可插入对应位置,-1表示插入末尾 # 1. 加载并解析XML文件 tree = ET.parse(xml_path) root = tree.getroot() # 2. 定位到用户列表的父节点 user_list_node = root.find("./CovRDMData/EnabledFeatureListForUsers") # 3. 构造新用户节点 # 3.1 根节点<FeatureEntitlementDetail> new_user_node = ET.Element("FeatureEntitlementDetail") # 3.2 添加<UserName>节点 user_name_node = ET.SubElement(new_user_node, "UserName") user_name_node.text = new_username # 3.3 添加<FeatureList>节点 feature_list_node = ET.SubElement(new_user_node, "FeatureList") # 3.4 批量添加FeatureId for fid in new_feature_ids: feature_detail = ET.SubElement(feature_list_node, "FeatureDetail") fid_node = ET.SubElement(feature_detail, "FeatureId") fid_node.text = str(fid) # 4. 插入新用户节点到指定位置 user_list_node.insert(insert_position, new_user_node) # 5. 格式化缩进(Python 3.9及以上版本支持,保证输出格式和原文件一致) ET.indent(tree, space=" ", level=0) # 6. 保存修改后的XML tree.write(xml_path, encoding="utf-8", xml_declaration=True)
注意事项
- 运行前请先备份原XML文件,避免误操作导致数据丢失
- 如果你使用的Python版本低于3.9,没有
ET.indent方法,可以手动调整缩进,或者安装lxml库替换内置的ElementTree使用 - 如需修改插入位置,调整
insert_position参数即可:参数值为0代表插入到列表最开头,为len(user_list_node)代表插入到列表末尾,填写其他数字会插入到对应下标的位置
内容的提问来源于stack exchange,提问作者Ashok Anumula
相关产品推荐
相关产品推荐

