You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:06:01