当前位置: 代码网 > it编程>前端脚本>Python > Python3实现解析XML文件并存入Excel表中

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

2025年12月19日 Python 我要评论
1. xml文件部分数据<?xml version='1.0' encoding='utf-8'?><nvd xmlns:xsi="http://www.w3.org/2001/xm

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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com