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文相关推荐

  1. python中dom模块_Python中使用dom模块生成XML文件示例

    在Python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文件,下一篇文章再继续介绍Dom解析XML文件. 在生成XML文件中,我们主 ...

  2. python xml.dom模块解析xml

    1. 什么是xml?有何特征? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 例子:del.xml <?xml version=&q ...

  3. python xml.dom模块解析xml

    阅读目录 1. 什么是xml?有何特征? 2. 获得标签属性 3. 获得子标签 4. 获得标签属性值 5. 获得标签对之间的数据 6. 例子 7. 总结 回到顶部 1. 什么是xml?有何特征? xm ...

  4. Python中如何用random模块生成随机数并重现

    使用random模块生成随机数 Python广为人们喜爱的原因就是Python中有许许多多非常便捷的模块可供我们随意调用,在Python中我们可以通过调用random模块来生成一个伪随机数. --只有 ...

  5. python产生随机数random.random_Python内置random模块生成随机数的方法

    本文我们详细地介绍下两个模块关于生成随机序列的其他使用方法. 随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的ran ...

  6. python中sn的意思_Python中random模块生成随机数详解

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  7. python数据分析并生成报告界面_如何用Python绘图和制作数据分析报告?

    Live 简介: 你要向老板汇报自己的工作成果,如果光靠生硬的语言或文字来展示,那么老板很有可能听不懂,更没有兴趣看那一堆文字.这会直接影响你的升职加薪.但是你还要还房贷.买车子.旅游.结婚.生孩子. ...

  8. python html做界面_如何用EEL(python库)打开一个新的HTML页面?

    我刚刚开始学习所有的编程知识,偶然发现了这个Python库"EEL",在这个库中,您可以用HTML创建一个像样的GUI.然而,可供学习的教程或像样的示例项目并不多.这是我想要做的, ...

  9. python学生管理系统界面-Python实现GUI学生信息管理系统

    本文实例为大家分享了Python实现GUI学生信息管理系统的具体代码,供大家参考,具体内容如下 项目环境: 软件环境: OS:RedHat6.3 Lib:Pygtk Language:Python S ...

最新文章

  1. Java Web Application 自架构 四 Log4j2日志管理
  2. 修改Linux安装软件镜像源为阿里云
  3. C语言实用算法系列之学生管理系统_对整个结构体操作_冒泡排序
  4. Java提高篇 —— Java浅拷贝和深拷贝
  5. jackson用法,json转换
  6. java手机太亮,Android 亮度调节
  7. LeetCode 3Sum (Two pointers)
  8. 史上最全的谷歌公司那些黑科技
  9. 利用ansys计算机械结构最小安全系数教程,利用ANSYS计算复杂薄壁杆件截面特性.pdf...
  10. Goland常用快捷键
  11. 某软件大赛编程题(转)
  12. LOE是什么?如何加入?
  13. (C++学习笔记四)封装的使用
  14. python字符串这一篇就够了
  15. 学习之旅-计算语言学工作者需要了解的数学知识
  16. idea中摸鱼插件_上班防摸鱼插件(知乎页面)
  17. CRMEB 打通版4.3
  18. 机器学习——正则化 (Regularizaiton-Regular-Regularize)
  19. centos7下安装nfs文件服务器 为k8s中使用nfs做准备
  20. html点击小图轮播图,使用纯CSS实现点击轮播图效果,无js。

热门文章

  1. 转 Grand Central Dispatch 基础教程:Part 1/2 -swift
  2. KVC(Key-Value-Coding)和KVO(Key-Value-Observer)
  3. 开始使用Python编程
  4. 解读OpenShift的逻辑架构和技术架构
  5. OpenCV入门及应用案例:手把手教你做DNN图像分类
  6. 零基础入门Python I/O:从print函数开始
  7. FreeModbus移植到STM32F103(串行传输方式)
  8. 本周 火火火火火 的开源项目
  9. 感谢前任程序员赏饭吃!
  10. 【升级包】jeecg_online 支持主子表列表展示风格模板升级包,简易升级