python生成xml界面,Python如何用dom模块生成XML文
Python如何用dom模块生成XML文件呢?
主要方法三点:
首先、生成XML节点(node)
createElement("node_name")
然后、给节点添加属性值(Attribute)
node.setAttribute("att_name", "arr_value")
最后、节点的标签值(data)
createTextNode("node_value")
其中第1、3点在创建完节点(节点值)之后,还需使用下面的方法添加到指点的节点的位置下面:
prev_node.appendChild(cur_node)
这里的prev_node要添加节点的上一层节点,而cur_node即为当前要添加的节点了。
代码如下:
Created on 2012-8-28
@author: walfred
@module: domxml.genXML
@description:
'''
import xml.dom.minidom as Dom
if __name__ == "__main__":
doc = Dom.Document()
root_node = doc.createElement("book_store")
root_node.setAttribute("name", "newhua")
root_node.setAttribute("website", "CODEGO.net")
doc.appendChild(root_node)
book_node = doc.createElement("book1")
book_name_node = doc.createElement("name")
book_name_value = doc.createTextNode("hamlet")
book_name_node.appendChild(book_name_value)
book_node.appendChild(book_name_node)
book_author_node = doc.createElement("author")
book_author_value = doc.createTextNode("William Shakespeare")
book_author_node.appendChild(book_author_value)
book_node.appendChild(book_author_node)
root_node.appendChild(book_node)
f = open("book_store.xml", "w")
f.write(doc.toprettyxml(indent = "\t", newl = "\n", encoding = "utf-8"))
f.close()
这个代码将在当前目录下生成一个book_store.xml文件:
hamlet
William Shakespeare
代码如下:
Created on 2012-8-28
@author: walfred
@module: domxml.wXMLbyDom
@description:
import xml.dom.minidom as Dom
class XMLGenerator:
def __init__(self, xml_name):
self.doc = Dom.Document()
self.xml_name = xml_name
def createNode(self, node_name):
return self.doc.createElement(node_name)
def addNode(self, node, prev_node = None):
cur_node = node
if prev_node is not None:
prev_node.appendChild(cur_node)
else:
self.doc.appendChild(cur_node)
return cur_node
def setNodeAttr(self, node, att_name, value):
cur_node = node
cur_node.setAttribute(att_name, value)
def setNodeValue(self, cur_node, value):
node_data = self.doc.createTextNode(value)
cur_node.appendChild(node_data)
def genXml(self):
f = open(self.xml_name, "w")
f.write(self.doc.toprettyxml(indent = "\t", newl = "\n", encoding = "utf-8"))
f.close()
if __name__ == "__main__":
myXMLGenerator = XMLGenerator("book_store.xml")
#xml root node
node_book_store = myXMLGenerator.createNode("book_store")
myXMLGenerator.setNodeAttr(node_book_store, "name", "new hua")
myXMLGenerator.setNodeAttr(node_book_store, "website", "CODEGO.net")
myXMLGenerator.addNode(node = node_book_store)
#book01
node_book_01 = myXMLGenerator.createNode("book")
node_book_01_name = myXMLGenerator.createNode("name")
myXMLGenerator.setNodeValue(node_book_01_name, "Hamlet")
myXMLGenerator.addNode(node_book_01_name, node_book_01)
node_book_01_author = myXMLGenerator.createNode("author")
myXMLGenerator.setNodeValue(node_book_01_author, "William Shakespeare")
myXMLGenerator.addNode(node_book_01_author, node_book_01)
node_book_01_price = myXMLGenerator.createNode("price")
myXMLGenerator.setNodeValue(node_book_01_price, "$20")
myXMLGenerator.addNode(node_book_01_price, node_book_01)
node_book_01_grade = myXMLGenerator.createNode("grade")
myXMLGenerator.setNodeValue(node_book_01_grade, "good")
myXMLGenerator.addNode(node_book_01_grade, node_book_01)
myXMLGenerator.addNode(node_book_01, node_book_store)
#book 02
node_book_02 = myXMLGenerator.createNode("book")
node_book_02_name = myXMLGenerator.createNode("name")
myXMLGenerator.setNodeValue(node_book_02_name, "shuihu")
myXMLGenerator.addNode(node_book_02_name, node_book_02)
node_book_02_author = myXMLGenerator.createNode("author")
myXMLGenerator.setNodeValue(node_book_02_author, "naian shi")
myXMLGenerator.addNode(node_book_02_author, node_book_02)
node_book_02_price = myXMLGenerator.createNode("price")
myXMLGenerator.setNodeValue(node_book_02_price, "$200")
myXMLGenerator.addNode(node_book_02_price, node_book_02)
node_book_02_grade = myXMLGenerator.createNode("grade")
myXMLGenerator.setNodeValue(node_book_02_grade, "good")
myXMLGenerator.addNode(node_book_02_grade, node_book_02)
myXMLGenerator.addNode(node_book_02, node_book_store)
#gen
myXMLGenerator.genXml()
同样这个方法会在本目录下生成一个book_store.xml文件,代码如下:
Hamlet
William Shakespeare
$20
good
shuihu
naian shi
$200
good
python生成xml界面,Python如何用dom模块生成XML文相关推荐
- python中dom模块_Python中使用dom模块生成XML文件示例
在Python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文件,下一篇文章再继续介绍Dom解析XML文件. 在生成XML文件中,我们主 ...
- python xml.dom模块解析xml
1. 什么是xml?有何特征? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 例子:del.xml <?xml version=&q ...
- python xml.dom模块解析xml
阅读目录 1. 什么是xml?有何特征? 2. 获得标签属性 3. 获得子标签 4. 获得标签属性值 5. 获得标签对之间的数据 6. 例子 7. 总结 回到顶部 1. 什么是xml?有何特征? xm ...
- Python中如何用random模块生成随机数并重现
使用random模块生成随机数 Python广为人们喜爱的原因就是Python中有许许多多非常便捷的模块可供我们随意调用,在Python中我们可以通过调用random模块来生成一个伪随机数. --只有 ...
- python产生随机数random.random_Python内置random模块生成随机数的方法
本文我们详细地介绍下两个模块关于生成随机序列的其他使用方法. 随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的ran ...
- python中sn的意思_Python中random模块生成随机数详解
Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...
- python数据分析并生成报告界面_如何用Python绘图和制作数据分析报告?
Live 简介: 你要向老板汇报自己的工作成果,如果光靠生硬的语言或文字来展示,那么老板很有可能听不懂,更没有兴趣看那一堆文字.这会直接影响你的升职加薪.但是你还要还房贷.买车子.旅游.结婚.生孩子. ...
- python html做界面_如何用EEL(python库)打开一个新的HTML页面?
我刚刚开始学习所有的编程知识,偶然发现了这个Python库"EEL",在这个库中,您可以用HTML创建一个像样的GUI.然而,可供学习的教程或像样的示例项目并不多.这是我想要做的, ...
- python学生管理系统界面-Python实现GUI学生信息管理系统
本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境: 软件环境: OS:RedHat6.3 Lib:Pygtk Language:Python S ...
最新文章
- Java Web Application 自架构 四 Log4j2日志管理
- 修改Linux安装软件镜像源为阿里云
- C语言实用算法系列之学生管理系统_对整个结构体操作_冒泡排序
- Java提高篇 —— Java浅拷贝和深拷贝
- jackson用法,json转换
- java手机太亮,Android 亮度调节
- LeetCode 3Sum (Two pointers)
- 史上最全的谷歌公司那些黑科技
- 利用ansys计算机械结构最小安全系数教程,利用ANSYS计算复杂薄壁杆件截面特性.pdf...
- Goland常用快捷键
- 某软件大赛编程题(转)
- LOE是什么?如何加入?
- (C++学习笔记四)封装的使用
- python字符串这一篇就够了
- 学习之旅-计算语言学工作者需要了解的数学知识
- idea中摸鱼插件_上班防摸鱼插件(知乎页面)
- CRMEB 打通版4.3
- 机器学习——正则化 (Regularizaiton-Regular-Regularize)
- centos7下安装nfs文件服务器 为k8s中使用nfs做准备
- html点击小图轮播图,使用纯CSS实现点击轮播图效果,无js。
热门文章
- 转 Grand Central Dispatch 基础教程:Part 1/2 -swift
- KVC(Key-Value-Coding)和KVO(Key-Value-Observer)
- 开始使用Python编程
- 解读OpenShift的逻辑架构和技术架构
- OpenCV入门及应用案例:手把手教你做DNN图像分类
- 零基础入门Python I/O:从print函数开始
- FreeModbus移植到STM32F103(串行传输方式)
- 本周 火火火火火 的开源项目
- 感谢前任程序员赏饭吃!
- 【升级包】jeecg_online 支持主子表列表展示风格模板升级包,简易升级