使用Python生成XML的方法实例


Posted in Python onMarch 21, 2017

本文实例讲述了使用Python生成XML的方法。分享给大家供大家参考,具体如下:

1. bookstore.py

#encoding:utf-8
'''
根据一个给定的XML Schema,使用DOM树的形式从空白文件生成一个XML。
'''
from xml.dom.minidom import Document
doc = Document() #创建DOM文档对象
bookstore = doc.createElement('bookstore') #创建根元素
bookstore.setAttribute('xmlns:xsi',"http://www.w3.org/2001/XMLSchema-instance")#设置命名空间
bookstore.setAttribute('xsi:noNamespaceSchemaLocation','bookstore.xsd')#引用本地XML Schema
doc.appendChild(bookstore)
############book:Python处理XML之Minidom################
book = doc.createElement('book')
book.setAttribute('genre','XML')
bookstore.appendChild(book)
title = doc.createElement('title')
title_text = doc.createTextNode('Python处理XML之Minidom') #元素内容写入
title.appendChild(title_text)
book.appendChild(title)
author = doc.createElement('author')
book.appendChild(author)
author_first_name = doc.createElement('first-name')
author_last_name = doc.createElement('last-name')
author_first_name_text = doc.createTextNode('张')
author_last_name_text = doc.createTextNode('三')
author.appendChild(author_first_name)
author.appendChild(author_last_name)
author_first_name.appendChild(author_first_name_text)
author_last_name.appendChild(author_last_name_text)
book.appendChild(author)
price = doc.createElement('price')
price_text = doc.createTextNode('28')
price.appendChild(price_text)
book.appendChild(price)
############book1:Python写网站之Django####################
book1 = doc.createElement('book')
book1.setAttribute('genre','Web')
bookstore.appendChild(book1)
title1 = doc.createElement('title')
title_text1 = doc.createTextNode('Python写网站之Django')
title1.appendChild(title_text1)
book1.appendChild(title1)
author1 = doc.createElement('author')
book.appendChild(author1)
author_first_name1 = doc.createElement('first-name')
author_last_name1 = doc.createElement('last-name')
author_first_name_text1 = doc.createTextNode('李')
author_last_name_text1 = doc.createTextNode('四')
author1.appendChild(author_first_name1)
author1.appendChild(author_last_name1)
author_first_name1.appendChild(author_first_name_text1)
author_last_name1.appendChild(author_last_name_text1)
book1.appendChild(author1)
price1 = doc.createElement('price')
price_text1 = doc.createTextNode('40')
price1.appendChild(price_text1)
book1.appendChild(price1)
########### 将DOM对象doc写入文件
f = open('bookstore.xml','w')
f.write(doc.toprettyxml(indent = ''))
f.close()

2. bookstore.xsd

<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
 <xsd:element name="bookstore" type="bookstoreType"/>
 <xsd:complexType name="bookstoreType">
  <xsd:sequence maxOccurs="unbounded">
   <xsd:element name="book" type="bookType"/>
  </xsd:sequence>
 </xsd:complexType>
 <xsd:complexType name="bookType">
  <xsd:sequence>
   <xsd:element name="title" type="xsd:string"/>
   <xsd:element name="author" type="authorName"/>
   <xsd:element name="price" type="xsd:decimal"/>
  </xsd:sequence>
  <xsd:attribute name="genre" type="xsd:string"/>
 </xsd:complexType>
 <xsd:complexType name="authorName">
  <xsd:sequence>
   <xsd:element name="first-name" type="xsd:string"/>
   <xsd:element name="last-name" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>
</xsd:schema>

3. 根据上面的XML Schema用Python minidom生成的XML

bookstore.xml

<?xml version="1.0" ?>
<bookstore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="bookstore.xsd">
 <book genre="XML">
  <title>
   Python处理XML之Minidom
  </title>
  <author>
   <first-name>
    张
   </first-name>
   <last-name>
    三
   </last-name>
  </author>
  <price>
   28
  </price>
 </book>
 <book genre="Web">
  <title>
   Python写网站之Django
  </title>
  <author>
   <first-name>
    李
   </first-name>
   <last-name>
    四
   </last-name>
  </author>
  <price>
   40
  </price>
 </book>
</bookstore>
Python 相关文章推荐
Python 返回汉字的汉语拼音
Feb 27 Python
让python的Cookie.py模块支持冒号做key的方法
Dec 28 Python
详解Python中用于计算指数的exp()方法
May 14 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
Python实现的建造者模式示例
Aug 06 Python
Python实现对字典分别按键(key)和值(value)进行排序的方法分析
Dec 19 Python
python实现AES加密解密
Mar 28 Python
Django中多种重定向方法使用详解
Jul 17 Python
关于python中plt.hist参数的使用详解
Nov 28 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
Python存取XML的常见方法实例分析
Mar 21 #Python
Python正则简单实例分析
Mar 21 #Python
Python处理XML格式数据的方法详解
Mar 21 #Python
Python做简单的字符串匹配详解
Mar 21 #Python
Python 转义字符详细介绍
Mar 21 #Python
python 迭代器和iter()函数详解及实例
Mar 21 #Python
浅谈五大Python Web框架
Mar 20 #Python
You might like
PHP 高手之路(三)
2006/10/09 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
jQuery中prevUntil()方法用法实例
2015/01/08 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
如何给ss bash 写一个 WEB 端查看流量的页面
2017/03/23 Javascript
vuex的简单使用教程
2018/02/02 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
js中比较两个对象是否相同的方法示例
2019/09/02 Javascript
利用React高阶组件实现一个面包屑导航的示例
2020/08/23 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
python中List的sort方法指南
2014/09/01 Python
python中字符串比较使用is、==和cmp()总结
2018/03/18 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
python实现ftp文件传输系统(案例分析)
2020/03/20 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
2020/04/17 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
python软件都是免费的吗
2020/06/18 Python
python两个list[]相加的实现方法
2020/09/23 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
html5 Canvas画图教程(4)—未闭合的路径及渐变色的填充方法
2013/01/09 HTML / CSS
生物化工工艺专业应届生求职信
2013/10/08 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
《莫高窟》教学反思
2014/02/25 职场文书
旅游管理毕业生自荐信范文
2014/03/19 职场文书
理财学专业自荐书
2014/06/28 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
队列队形口号
2015/12/25 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python