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

XML文件中提取修改experience标签数值并添加千分符的需求

Hey there! 处理XML里的<experience>数值替换,用专门的XML解析工具比硬写正则靠谱太多——毕竟XML的标签可能有换行、空格,正则很容易误匹配其他内容。下面给你一个Python的实现方案,完美满足你的需求:

核心思路

  1. 用Python标准库的xml.etree.ElementTree解析XML(不用额外装包)
  2. 遍历所有<char>节点下的<experience>标签
  3. 提取原数值,按规则添加千分符(你示例里用点作为千分符,超过100万自动加两个分隔符)
  4. 把修改后的数值写回标签,最后保存文件

完整代码示例

import xml.etree.ElementTree as ET

def format_experience(num_str):
    # 清理数值里的空格,转成整数
    num = int(num_str.strip())
    num_str = str(num)
    
    # 反转字符串,按每三位分割,再反转回来拼接(实现千分符分隔)
    reversed_str = num_str[::-1]
    split_parts = [reversed_str[i:i+3] for i in range(0, len(reversed_str), 3)]
    formatted = '.'.join(split_parts)[::-1]
    
    return formatted

# 加载你的XML文件(如果是字符串内容,用ET.fromstring()替代)
tree = ET.parse('your_input.xml')
root = tree.getroot()

# 遍历所有<char>节点,处理<experience>
for char_node in root.findall('char'):
    exp_node = char_node.find('experience')
    # 确保标签存在且有内容
    if exp_node is not None and exp_node.text is not None:
        original_val = exp_node.text
        exp_node.text = format_experience(original_val)

# 保存修改后的XML文件
tree.write('your_output.xml', encoding='utf-8', xml_declaration=True)

注意事项

  • XML格式合法性:你给出的XML片段缺少根节点(XML必须有唯一根元素),所以要先把内容包装起来,比如:
    <root>
        <class>OverAll</class>
        <char>...</char>
        <char>...</char>
    </root>
    
  • 千分符自定义:如果你想用逗号做千分符,只需要把format_experience函数里的'.'.join(...)改成','.join(...)就行
  • 容错处理:代码里已经处理了标签为空的情况,避免运行报错

这个方案能稳定处理各种XML格式的情况,不会出现正则匹配漏改、误改的问题~

内容的提问来源于stack exchange,提问作者Gletschernadel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:49:42