一、实现逻辑
1、调用ElementTree 相关工具
2、打开xml 文件
3、根据相关语法进行xml 的解析
4、打印输出(输出Excel同理)
二、运用 ElementTree 进行 xml 解析
1、使用ET打开文件
# 打开xml文档
tree = ET.parse('F:\计算机软件\解析xml\Gis地图数据转换需求\海缆线路经纬度.xml')
2、打开根节点
document = tree.getroot()
3、最简单的就是 for 遍历子集合
# 遍历第一层
for folder in document:
# print(child.tag, child.attrib)
name1 = folder.find('name').text
# print(name1)
# 遍历第二层
for placemark in folder.iter('Placemark'):
name2 = placemark.find('name').text
注:这边遍历第一层的时候是全部遍历,也就是遍历所有子集(因为我这个document下都是folder标签)
遍历第二层我是进行了Placemark标签的筛选
4、通过方法拿到标签后 .text 拿到标签中的元素值
三、将解析到的数据写入Excel中,本次调用xlsxwriter包
1、创建excel表格
workbook = xlsxwriter.Workbook('F:\计算机软件\解析xml\Gis地图数据转换需求\work01.xlsx')
worksheet = workbook.add_worksheet('work01')
2、写入Excel
#开始写入Excel
worksheet.write('A'+str(n), name1)
注:1.xlsxwriter 不会出现超出范围,xlsx包会出现超出范围。
2.xlsxwriter 和 xlsx 的语法不一样,xlsxwriter 是 直接定义String 格式的位置,如‘A1’