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

如何从多级XML提取属性值并转换为指定<set>标签格式?

解决方案

步骤说明

  1. 修复XML结构: 原始XML片段缺少根节点,需先包裹在临时根标签内确保解析有效。
  2. 解析并排序等级: 使用xml.etree.ElementTree解析XML,按val属性排序等级节点,保证数据顺序正确。
  3. 收集指标数据: 遍历每个等级节点,提取各指标(hp、mp等)的值并按类别存储。
  4. 生成目标格式: 将每个类别的值用分号拼接,生成<set>标签字符串。

Python代码实现

import xml.etree.ElementTree as ET

# 原始XML输入(可替换为从文件读取)
input_xml = """
<levels>
    <level val="1">
        <hp>94</hp>
        <mp>30</mp>
        <cp>37.6</cp>
        <hpRegen>2</hpRegen>
        <mpRegen>0.9</mpRegen>
        <cpRegen>2</cpRegen>
    </level>
    <level val="2">
        <hp>107.65</hp>
        <mp>35.46</mp>
        <cp>43.06</cp>
        <hpRegen>2</hpRegen>
        <mpRegen>0.9</mpRegen>
        <cpRegen>2</cpRegen>
    </level>
    <level val="3">
        <hp>121.45</hp>
        <mp>40.98</mp>
        <cp>48.58</cp>
        <hpRegen>3</hpRegen>
        <mpRegen>0.9</mpRegen>
        <cpRegen>2</cpRegen>
    </level>
</levels>
"""

# 解析XML
root = ET.fromstring(input_xml)

# 按等级值排序节点,确保顺序正确
levels = sorted(root.findall('level'), key=lambda x: int(x.get('val')))

# 收集各指标数据
metric_data = {}
for level in levels:
    for metric in level:
        metric_tag = metric.tag
        value = metric.text.strip()
        if metric_tag not in metric_data:
            metric_data[metric_tag] = []
        metric_data[metric_tag].append(value)

# 生成目标格式输出
output_lines = []
for tag, values in metric_data.items():
    table_attr = f"{tag}Table"
    values_str = ";".join(values)
    output_lines.append(f'        <set {table_attr}="{values_str}"/>')

# 打印结果
print("\n".join(output_lines))

运行结果

<set hpTable="94;107.65;121.45"/>
        <set mpTable="30;35.46;40.98"/>
        <set cpTable="37.6;43.06;48.58"/>
        <set hpRegenTable="2;2;3"/>
        <set mpRegenTable="0.9;0.9;0.9"/>
        <set cpRegenTable="2;2;2"/>

注意事项

  • 如果原始XML来自文件,可将input_xml替换为文件读取代码:with open('input.xml', 'r') as f: input_xml = f.read()
  • 代码会自动处理所有<level>节点下的子标签,无需硬编码指标名称,适配扩展需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 06:22:38