Python实现xml解析并输出到Excel上

一、实现逻辑

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’

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Python中的xml.etree.ElementTree模块来解析XML,并使用第三方库如openpyxl来创建和操作Excel文件。下面是一个示例代码,演示了如何解析XML并将其内容输出Excel文件中: ```python import xml.etree.ElementTree as ET from openpyxl import Workbook def parse_xml(xml_file): # 创建一个Workbook对象 wb = Workbook() # 获取默认的活动工作表 sheet = wb.active # 解析XML文件 tree = ET.parse(xml_file) root = tree.getroot() # 遍历XML元素并将内容写入Excel表格 for child in root: row_data = [] for sub_child in child: row_data.append(sub_child.text) sheet.append(row_data) # 保存Excel文件 wb.save('output.xlsx') # 调用解析函数并传入XML文件路径 parse_xml('input.xml') ``` 在上述代码中,我们首先导入`xml.etree.ElementTree`模块来解析XML文件,然后导入`openpyxl`库来进行Excel的操作。`parse_xml`函数接受一个XML文件路径作为参数,它会打开该文件并解析其内容。 接下来,我们创建一个`Workbook`对象,并获取默认的活动工作表。然后,我们使用`ET.parse`函数解析XML文件,并通过`getroot()`方法获取根元素。 然后,我们遍历XML元素并将每个子元素的文本内容添加到一个列表中。最后,将该列表作为一行数据添加到Excel表格中。 最后,我们使用`wb.save()`方法保存Excel文件,并命名为`output.xlsx`。 请确保您已经安装了`openpyxl`库,您可以使用以下命令进行安装: ``` pip install openpyxl ``` 请注意,这只是一个简单的示例代码,您可能需要根据您的实际需求进行适当的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值