Python解析XML文件并写入EXCEL

一、XML简介

可扩展标记语言(Extensible Markup Language),简称XML。是一种用于标记电子文件使其具有结构性的标记语言。

XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但大部分都支持XML,那就意味着程序可以更容易的与Windows、Mac OS、Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析它,并以XML格式输出结果。

二、XML格式

1.xml只能有一个根级元素,不能有多个根级元素,例如在格式2中再添加一个根级元素<config1></config1>,就会报错。

2.xml的元素可以循环嵌套,父级元素包含子级元素,子级元素有可以包含自己的子级元素,

例如格式1:根级元素<CATALOG></CATALOG>包含了子级元素<CD></CD>,而<CD></CD>子级元素又可以包含多个自己的子级元素。

3.元素的两中形式:

形式1<节点名称>[值]</节点名称>如:<title>文章标题</title>

形式2<节点名称  属性1=[值]       属性2=[值]         属性3=[值]     ...   属性N=[值]/>

例如:

<row     col1="11" col2="一(一)班" col3="初一" col4="三峡高级中学" col5="20" col6="30"  col7="50"/>

三、代码实例

from xml.etree import ElementTree as ET
import xlwt

#提取元素数据
def parseXml():
    name_list = [] #站点名称列表
    code_list = [] #站点代码列表
    pointes = [] #站点名称和代码列表
 
    #打开文件
    dom = ET.parse("C:/Users/2222222/Downloads/EQPIdMap.xml")
    #文档根元素
    root = dom.getroot()
#     for child in root:
#         print(child.tag, child.attrib)
#     print(root.tag)

    #获取MESEQPID标签列表
    for EQPID in root.findall("EQPID"):
        MESEQ = EQPID.find('MESEQ')
#         print(MESEQ.text)
        meseqp_list.append(MESEQ.text)#加入列表

    #获取BCEQPID标签列表
    for EQPID in root.findall("EQPID"):
        BCEQ = EQPID.find('BCEQ')
#         print(BCEQ.text)
        code_list.append(BCEQ.text)#加入列表
   
    pointes.append(name_list)
    pointes.append(code_list)
    print(pointes)
    return pointes

    #写入excel
def save_excel(file_path,datas):
    f = xlwt.Workbook()
    sheet1 = f.add_sheet(u'sheet1', cell_overwrite_ok=True)
 
    r = 0 #行
    c = 0 #列
    for data in datas:
        for c in range(len(data)):
            sheet1.write(c,r,data[c])
        r = r + 1
    f.save(file_path)
 
if __name__ == '__main__':
    listdemo = parseXml()
    print(listdemo)
    save_excel("C:/Users/2222222/Downloads/aaa.xls",listdemo)
# xlwt 仅支持 xls 格式文件,导出时注意后缀为.xls
 
 
 
 
 

输入:

 

参考链接:

XML详解_xml格式_顺其自然~的博客-CSDN博客可扩展标记语言(Extensible Markup Language),标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息https://blog.csdn.net/fuhanghang/article/details/123272261

xml的文件格式有几种 - 风纳云[db:描述]icon-default.png?t=N4P3https://www.fengnayun.com/news/content/111715.html
python 解析xml文件写入excel_python 解析xml excel_垢浪_明珠的博客-CSDN博客本文目的是用python的ElementTree和xlwt解析xml文件并写入excel,在网上和官网看了一些示例,都是一些基本用法,简单例子,个人觉得不够实用,所以整理了此篇博客,把xml文件中的城市环境监测站点名称和代码,将数据提取保存到excel中。废话不多说直接上代码1.需要解析的datas.xml文件,由于文件内容比较多,所以只截取部分,需要提取的内容为Pointe...https://blog.csdn.net/yht2004123/article/details/105290004

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值