Python3实现解析XML文件并存入Excel表中

 更新时间:2025年12月18日 15:27:51   作者:Asia-Lee  
这篇文章主要为大家详细介绍了如何使用Python3实现解析XML文件并存入Excel表中,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

1. XML文件部分数据

<?xml version='1.0' encoding='UTF-8'?>
<nvd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://nvd.nist.gov/feeds/cve/1.2" nvd_xml_version="1.2" pub_date="2017-05-12" xsi:schemaLocation="http://nvd.nist.gov/feeds/cve/1.2 https://scap.nist.gov/schema/nvd/nvd-cve-feed_1.2.1.xsd">
  <entry type="CVE" name="CVE-1999-0001" seq="1999-0001" published="1999-12-30" modified="2010-12-16" severity="Medium" CVSS_version="2.0" CVSS_score="5.0" CVSS_base_score="5.0" CVSS_impact_subscore="2.9" CVSS_exploit_subscore="10.0" CVSS_vector="(AV:N/AC:L/Au:N/C:N/I:N/A:P)">
    <desc>
      <descript source="cve">ip_input.c in BSD-derived TCP/IP implementations allows remote attackers to cause a denial of service (crash or hang) via crafted packets.</descript>
    </desc>
    <loss_types>
      <avail/>
    </loss_types>
    <range>
      <network/>
    </range>
    <refs>
      <ref source="CONFIRM" url="http://www.openbsd.org/errata23.html#tcpfix">http://www.openbsd.org/errata23.html#tcpfix</ref>
    </refs>
    <vuln_soft>
      <prod name="freebsd" vendor="freebsd">
        <vers num="1.1.5.1"/>
        <vers num="2.2.8"/>
        <vers num="2.2"/>
        <vers num="1.0"/>
        <vers num="2.1.7"/>
        <vers num="2.2.6"/>
        <vers num="2.1.6.1"/>
        <vers num="3.0"/>
        <vers num="2.0"/>
        <vers num="2.1.7.1"/>
        <vers num="1.1"/>
        <vers num="2.2.2"/>
        <vers num="1.2"/>
        <vers num="2.0.5"/>
        <vers num="2.2.3"/>
        <vers num="2.0.1"/>
        <vers num="2.1.5"/>
        <vers num="2.2.4"/>
        <vers num="2.1.6"/>
        <vers num="2.2.5"/>
      </prod>
      <prod name="bsd_os" vendor="bsdi">
        <vers num="3.1"/>
      </prod>
      <prod name="openbsd" vendor="openbsd">
        <vers num="2.4"/>
        <vers num="2.3"/>
      </prod>
    </vuln_soft>
  </entry>

2. Python3解析XML并将数据写入Excel表中

# -*- coding: utf-8 -*-
import xml.dom.minidom #导入处理xml文件的模块
import pandas as pd
 
#打开xml文档 并将这个文件对象存入dom变量
dom = xml.dom.minidom.parse('dataset_source/NVD/nvdcve-2002.xml')
#得到文档元素对象
root = dom.documentElement #用于得到dom对象的文档元素,并把获得的对象给root
 
#获得标签为entry的多组标签
entry_tag=dom.getElementsByTagName('entry')
data1=entry_tag[0] #表示多组标签中的第一个,entry_tag[2]表示这多组标签中的第三个
cve_name=data1.getAttribute("name") #获得元素属性对应的值
print(cve_name)
lenth=entry_tag.length  #获取xml文件中标签对为entry的个数
print(len(entry_tag))   #获取xml文件中标签对为entry的个数
print(lenth)
 
 
descript_tag=dom.getElementsByTagName('descript') #获得标签为entry的多组标签
data2=descript_tag[0]
descript=data2.firstChild.data  #获得标签对之间的数据
print(descript)
 
#获取entry标签的子标签descript之间的数据
data3=dom.getElementsByTagName('entry')[0].getElementsByTagName('descript')[0].firstChild.data
print(data3)
 
 
cve_list=[]
descript_list=[]
cve_list.append(cve_name) #将获得的数据存入列表
descript_list.append(descript)
all_dict={'CVE':cve_list,'Decript':descript_list} #将列表存储为字典
df = pd.DataFrame(all_dict) #将字典转换为DataFrame
 
#将DataFrame数据写入excel表中
with pd.ExcelWriter('new.xls') as Writer:
    df.to_excel(Writer,'Sheet1',index=False)

结果为:

到此这篇关于Python3实现解析XML文件并存入Excel表中的文章就介绍到这了,更多相关Python3解析XML内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python特性之列表推导式和生成器表达式详解

    Python特性之列表推导式和生成器表达式详解

    这篇文章主要介绍了python语言的两个非常有用的特性:列表推导式和生成器表达式,但是它们之间也有一些重要的区别,我们一起来看看吧
    2023-08-08
  • Python光学仿真学习衍射算法初步理解

    Python光学仿真学习衍射算法初步理解

    这篇文章主要为大家介绍了Python光学仿真学习中对衍射算法的初步理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • python使用post提交数据到远程url的方法

    python使用post提交数据到远程url的方法

    这篇文章主要介绍了python使用post提交数据到远程url的方法,涉及Python使用post传递数据的相关技巧,需要的朋友可以参考下
    2015-04-04
  • python webp图片格式转化的方法

    python webp图片格式转化的方法

    这篇文章主要为大家详细介绍了python webp图片格式转化的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • django rest framework之请求与响应(详解)

    django rest framework之请求与响应(详解)

    下面小编就为大家带来一篇django rest framework之请求与响应(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望对大家有所帮助
    2017-11-11
  • PyQt5每天必学之工具提示功能

    PyQt5每天必学之工具提示功能

    这篇文章主要为大家详细介绍了PyQt5每天必学之工具提示功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Python-for循环的内部机制

    Python-for循环的内部机制

    这篇文章主要介绍了Python for循环的内部机制,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Pygame做一期吃豆子游戏的示例代码

    Pygame做一期吃豆子游戏的示例代码

    这篇文章主要介绍了Pygame做一期吃豆子游戏的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python的json包位置及用法总结

    python的json包位置及用法总结

    在本篇内容里小编给大家分享了关于python的json包用法详解内容,需要的朋友们跟着学习下吧。
    2020-06-06
  • Python+requests+unittest执行接口自动化测试详情

    Python+requests+unittest执行接口自动化测试详情

    这篇文章主要介绍了Python+requests+unittest执行接口自动化测试详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-09-09

最新评论