1.示例如下:
使用dom格式处理
# -*- coding: utf-8 -*-import xml.dom.minidom #导入处理xml文件的模块import pandas as pdimport csv#打开xml文档 并将这个文件对象存入dom变量dom = xml.dom.minidom.parse('242.xml')# documentElement用于得到dom对象的文档元素,并把获得的对象给rootroot = dom.documentElement# print(root.nodeName)# print(root.nodeValue)# print(root.nodeType)# print(root.ELEMENT_NODE)# 获取<target>标签targets = root.getElementsByTagName('target')# print(ress,len(ress))# 创建一个csv文件,存储需要出的数据with open('result.csv','a+',newline='',encoding='utf-8') as csvfile:writer = csv.writer(csvfile)writer.writerow(['IP','端口','协议','服务','状态'])# 循环处理target标签的内容for target in targets:# 获取他的IP标签,格式是list,获取值的方式:list[0].childNodes[0].data,ip = target.getElementsByTagName('ip')[0].childNodes[0].datainfo = target.getElementsByTagName('record_results')# print(info,len(info))print(ip)# 获取value的标签列表,并获取其中的数据for values in info:ports = values.getElementsByTagName('value')aa = []# 长度为4的是port的value。if len(ports) == 4:for port in ports:# 获取value的值v = port.childNodes[0].dataaa.append(v)print(aa)with open('result.csv','a+',newline='',encoding='utf-8') as csvfile:writer = csv.writer(csvfile)# 写入到csv中writer.writerow([ip,aa[0],aa[1],aa[2],aa[3]])print('*******')# print(d[0].data)# print(ports)print('=========================================================')
