-- XML文件的结构为
xxxx
def XmlParseSave(fileName):
import xml.dom.minidom
import xml.etree.ElementTree as ET
import xmltodict
import pandas as pd
# 数据源文件路径
sourcePath = r'D:/work/原始xml文件存储路径/'
xml_file = sourcePath + fileName
#xml_file = file
tree = ET.parse(xml_file)
root = tree.getroot()
# 解析BizMsgID
BizMsgID = ''
for child in root:
if child.tag == 'Head':
for z in child:
if z.tag == 'BizMsgID':
#print(z.tag, z.text)
BizMsgID = z.text
# 新建excel文件,存放解析后的报文数据
# 目标数据路径
objPath = r'D:/work/目标解析/'
obj_file = objPath + fileName.replace('.xml', '') + '.xlsx'
import openpyxl
wb = openpyxl.Workbook()
wb.save(obj_file)
writer = pd.ExcelWriter(obj_file,mode='a', engine='openpyxl',if_sheet_exists='new')
for child in root:
if child.tag == "Data":
for data in child:
# 数据写到EXCEL中
## data.tag 标签数据; data.attrib 为dict类型的数据内容
dfData = pd.DataFrame(data.attrib , index = [BizMsgID])
dfData['BizMsgID'] = BizMsgID
dfData.to_excel(writer , sheet_name= data.tag, index=True)
writer.save()
writer.save()
if __name__ == '__main__':
import os
import pandas as pd
file_path2 = 'D:/work/原始xml文件存储路径/'
# 找到文件夹下所有的文件
pathDir = os.listdir(file_path2)
# 遍历所有文件,读取文件内容,并将其存放到目标文件下
for file in pathDir:
print(file)
XmlParseSave(file)