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

使用Python指定模块解析XML并生成含指定列的Excel表格

解决方案:解析XML并生成Excel表格

首先确保安装了openpyxl库,因为它不是Python标准库:

pip install openpyxl

以下是完整的实现代码,涵盖XML解析、数据提取和Excel生成的全部流程:

import xml.etree.ElementTree as ET
from openpyxl import Workbook

# 解析XML文件
tree = ET.parse('input.xml')  # 替换为你的XML文件路径
root = tree.getroot()

# 准备存储数据的列表
items_data = []

# 遍历所有itemlist节点,提取数据
for itemlist in root.findall('.//itemlist'):  # 使用XPath匹配所有层级的itemlist节点
    item_id = itemlist.find('ID').text if itemlist.find('ID') is not None else ''
    name = itemlist.find('NAME').text if itemlist.find('NAME') is not None else ''
    product_nr = itemlist.find('PRODUCTNR').text if itemlist.find('PRODUCTNR') is not None else ''
    
    items_data.append({
        'id': item_id,
        'name': name,
        'productnr': product_nr
    })

# 创建Excel工作簿和工作表
wb = Workbook()
ws = wb.active
ws.title = 'Items'

# 写入表头
headers = ['id', 'name', 'productnr']
ws.append(headers)

# 写入每行数据
for item in items_data:
    ws.append([item['id'], item['name'], item['productnr']])

# 保存Excel文件
wb.save('output.xlsx')  # 替换为你想要的输出文件路径

代码说明:

  • XML解析:用ET.parse()加载XML文件,通过XPath表达式.//itemlist匹配所有层级下的itemlist节点,避免遗漏嵌套在其他节点内的目标数据。
  • 数据提取:对每个itemlist节点,用find()查找子节点,通过if ... is not None判断节点是否存在,防止因缺失节点报错,缺失时用空字符串填充。
  • Excel操作:创建新工作簿后激活默认工作表并设置标题,先写入表头,再循环将提取的字典数据转为列表写入,最后保存文件。

注意事项:

  • 替换代码中的input.xml和output.xlsx为实际文件路径。
  • 如果XML中节点名称有大小写差异(比如id而非ID),需对应调整代码中的节点查找字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:55:00