使用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 正则式使用心得
May 07 Python
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
python实现K最近邻算法
Jan 29 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
将Python字符串生成PDF的实例代码详解
May 17 Python
10款最好的Python开发编辑器
Jul 03 Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 Python
opencv转换颜色空间更改图片背景
Aug 20 Python
Python3进制之间的转换代码实例
Aug 24 Python
Numpy之将矩阵拉成向量的实例
Nov 30 Python
Python图像处理二值化方法实例汇总
Jul 24 Python
python爬虫基础之urllib的使用
Dec 31 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 curl 伪造IP来源的实例代码
2012/11/01 PHP
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
重写javascript中window.confirm的行为
2012/10/21 Javascript
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
vue结合axios与后端进行ajax交互的方法
2018/07/06 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
详解Python的Django框架中的模版继承
2015/07/16 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
美国购车网站:TrueCar
2016/10/19 全球购物
美国户外烹饪产品购物网站:Outdoor Cooking
2020/01/10 全球购物
几个Linux面试题笔试题
2012/12/01 面试题
企业管理专业个人求职信范文
2013/09/24 职场文书
物流司机岗位职责
2013/12/28 职场文书
洗发露广告词
2014/03/14 职场文书
运动会入场口号
2014/06/07 职场文书
2015年少先队活动总结
2015/03/25 职场文书
Python实现归一化算法详情
2022/03/18 Python