用python写xml文件
def writeInfoToXml(filename, config_id, obj_name):
from xml.dom.minidom import Document
'''
eg:
<modify_config config_id="{}">
<nvt_selection>
<family>Web Servers</family>
<nvt oid="{}"/>
<family>Denial of Service</family>
<nvt oid="{}"/>
<family>General</family>
<nvt oid="{}"/>
</nvt_selection>
</modify_config>
'''
# 创建dom文档
doc = Document()
# 创建根节点
modify_node = doc.createElement('modify_config')
# 修改或添加节点中元素内容
modify_node.setAttribute("config_id", config_id)
# 根节点插入dom树
doc.appendChild(modify_node)
# 每一组信息先创建节点<order>,然后插入到父节点<modify_node>下
nvtSlect = doc.createElement('nvt_selection')
modify_node.appendChild(nvtSlect)
# 从数据库查询需要扫描的项
vulnerData = nova_get_vulnerdata_from_db(obj_name)
# 依次将vulnerData中的每一组元素提取出来,创建对应节点并插入dom树
for idx, sub_data in enumerate(vulnerData):
for name, oid_list in sub_data.items():
# 创建节点<family>
family = doc.createElement('family')
# 创建<family>下的文本节点
family_text = doc.createTextNode(name)
# 将文本节点插入到<family>下
family.appendChild(family_text)
# 将<family>插入到父节点<nvtSlect>下
nvtSlect.appendChild(family)
for oid in oid_list:
# 创建nvt节点
nvt_node = doc.createElement('nvt')
# 修改或添加节点中元素内容
nvt_node.setAttribute("oid", oid)
# 将nvt节点插入到父节点nvtSlect
nvtSlect.appendChild(nvt_node)
cmd = "rm -rf {}".format(filename)
subprocess.check_output(cmd, shell=True)
# 将dom对象写入本地xml文件
with open(filename, 'w') as f:
doc.writexml(f, indent='',addindent='\t',newl='\n',encoding='UTF-8')
https://www.cnblogs.com/seyOrd/p/12687091.html
用python写xml文件的更多相关文章
- python写xml文件
为了便于后续的读取处理,这里就将信息保存在xml文件中,想到得到的文件如下: 1 <?xml version="1.0" encoding="utf-8" ...
- PLSQL_PLSQL读和写XML文件方式(案例)
2012-05-01 Created By BaoXinjian
- Python写UTF8文件,UE、记事本打开依然乱码的问题
Python写UTF8文件,UE.记事本打开依然乱码的问题 Leave a reply 现象:使用codecs打开文件,写入UTF-8文本,正常无错误.用vim打开正常,但记事本.UE等打开乱码. 原 ...
- python写xml及几个问题
python写xml的库和用法 几个问题: 1.乱码问题 设写入UTF-8编码 write函数增加encoding='utf-8' 2.空元素xml节点简写及完整写 write函数增加 short_e ...
- python读取xml文件报错ValueError: multi-byte encodings are not supported
1.在使用python对xml文件进行读取时,提示ValueError: multi-byte encodings are not supported 很多贴子上说把xml的编码格式改为,就可以正常执 ...
- Python解析xml文件遇到的编码解析的问题
使用python对xml文件进行解析的时候,假设xml文件的头文件是utf-8格式的编码,那么解析是ok的,但假设是其它格式将会出现例如以下异常: xml.parsers.expat.ExpatErr ...
- python读写xml文件
python读取xml文件 xml文件是具有树状结构的,如果想要访问某个叶子结点,必须逐层获取其父结点,要读取某个叶子结点内容用text成员 使用前先加载xml工具包 try: import xml. ...
- python操作xml文件
一.什么是xml? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. abc.xml <?xml version="1.0&q ...
- 【C++】【TinyXml】xml文件的读写功能使用——写xml文件
TinyXml工具是常用比较简单的C++中xml读写的工具 需要加载 #include "TinyXml\tinyxml.h" 在TinyXML中,根据XML的各种元素来定义了一些 ...
- Python 读写XML文件
Python 生成XML文件 from xml.dom import minidom # 生成XML文件方式 def generateXml(): impl = minidom.getDOMImple ...
随机推荐
- ERROR 1862 (HY000): Your password has expired. To log in you must change it using a .....
navcat 登录本地失败 https://blog.csdn.net/fenniang16/article/details/81216602?spm=1001.2101.3001.6661.1&am ...
- PyTables 教程(二)多维表单元格和自动健全性检查,使用链接更方便地访问节点
翻译自http://www.pytables.org/usersguide/tutorials.html 多维表单元格和自动健全性检查 现在是一个更真实的例子(即代码中有错误)的时候了.我们将创建两个 ...
- padding&margin
margin是盒子的外边距,即盒子与盒子之间的距离,而padding是内边距,是盒子的边与盒子内部元素的距离. 鞋盒里面的鞋到 盒子的距离设置为 padding ,而 鞋盒到鞋架的距离设置为margi ...
- 羊了怎么居家办公?免费不限速的远控软件RayLink一解燃眉之急!!
近期疫情放开,各地症状不断的小阳人数量猛增(R君盼望大家早日转阴!!).不论是"羊"后居家,还是天选打工人被迫居家,远程控制公司电脑实现居家办公,成了大部分人的默契选择. 想远程控 ...
- 第6课第4节_Binder系统_驱动情景分析_服务注册过程_分析
Service_manager.c 8074 2017/6/30 首先从应用程序分析(Android) binder_loop(bs, svcmgr_handler) { readbuf[0] = B ...
- Day 21 21.1:CrawlSpider(全站数据爬取)
CrawlSpider(全站数据爬取) 实现网站的全站数据爬取 就是将网站中所有页码对应的页面数据进行爬取. crawlspider其实就是scrapy封装好的一个爬虫类,通过该类提供的相关的方法和属 ...
- python生成随机中文姓名和拼音
def sayhello(): print('hellopython') import pinyin import random def random_name(): # 删减部分,比较大众化姓氏 f ...
- Software--Spring Boot--Contact 项目初期
Spring Boot 简介 提供了四个主要的特性,能够改变开发Spring应用程序的方式: Spring Boot Starter : 将常用的依赖分组进行整合,将其合并到一个依赖中,可以以此行添加 ...
- 【SQL Server】numeric——精确数字的数据类型
NUMERIC数据类型是一种精确数字数据类型. numeric是标准sql的数据类型,格式是numeric(m,n).最多精确位数为38位,其中m表示总位数,n表示保留的小数点位数. 参数 含义 默认 ...
- C++ 手动实现单向循环链表(课后作业版)
单向循环链表,并实现增删查改等功能 首先定义节点类,类成员包含当前节点的值, 指向下一个节点的指针 循环链表的尾节点指向头节点 节点定义: //node definition template < ...