Python解析XML存⼊Excel中
XML⽂件部分数据
<?xml version='1.0' encoding='UTF-8'?>
<nvd xsi="/2001/XMLSchema-instance"xmlns="v/feeds/cve/1.2"nvd_xml_version="1.2"pub_date="2017-05-12" schemaLocation="v/feeds/cve/1.2 v/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"C VSS_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 craf ted packets.</descript>
</desc>
<loss_types>
<avail/>
</loss_types>
<range>
<network/>
</range>
<refs>
<ref source="CONFIRM"url="/errata23.html#tcpfix">/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>
解析XML并将数据写⼊Excel中
# -*- coding: utf-8 -*-
import xml.dom.minidom #导⼊处理xml⽂件的模块
import pandas as pd
#打开xml⽂档并将这个⽂件对象存⼊dom变量
dom = xml.dom.minidom.parse('dataset_source/l')
#得到⽂档元素对象
root = dom.documentElement #⽤于得到dom对象的⽂档元素,并把获得的对象给root
#获得标签为entry的多组标签
entry_ElementsByTagName('entry')
data1=entry_tag[0]#表⽰多组标签中的第⼀个,entry_tag[2]表⽰这多组标签中的第三个
cve_Attribute("name")#获得元素属性对应的值
print(cve_name)
lenth=entry_tag.length  #获取xml⽂件中标签对为entry的个数
print(len(entry_tag))#获取xml⽂件中标签对为entry的个数
print(lenth)
descript_ElementsByTagName('descript')#获得标签为entry的多组标签
data2=descript_tag[0]
descript=data2.firstChild.data  #获得标签对之间的数据
python处理xml文件print(descript)
#获取entry标签的⼦标签descript之间的数据
ElementsByTagName('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:
<_excel(Writer,'Sheet1',index=False)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。