使用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 相关文章推荐
linux系统使用python监测网络接口获取网络的输入输出
Jan 15 Python
在Python中使用matplotlib模块绘制数据图的示例
May 04 Python
用yum安装MySQLdb模块的步骤方法
Dec 15 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 Python
Python编程实现正则删除命令功能
Aug 30 Python
用Python实现数据的透视表的方法
Nov 16 Python
Python 从一个文件中调用另一个文件的类方法
Jan 10 Python
Python小白必备的8个最常用的内置函数(推荐)
Apr 03 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
Jul 23 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
怎么解决pycharm license Acti的方法
Oct 28 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 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 和 MySQL 基础教程(二)
2006/10/09 PHP
改变Apache端口等配置修改方法
2008/06/05 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
一段实时更新的时间代码
2006/07/07 Javascript
js 深拷贝函数
2008/12/04 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
JavaScript Math.round() 方法
2015/12/18 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
浅析$.getJSON异步请求和同步请求
2016/06/06 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
jQuery中 DOM节点操作方法大全
2017/10/12 jQuery
详解使用vue-admin-template的优化历程
2018/05/20 Javascript
webpack4 SCSS提取和懒加载的示例
2018/09/03 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
python中正则表达式的使用详解
2014/10/17 Python
Python StringIO模块实现在内存缓冲区中读写数据
2015/04/08 Python
Python实现建立SSH连接的方法
2015/06/03 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
用 python 进行微信好友信息分析
2020/11/28 Python
python读写数据读写csv文件(pandas用法)
2020/12/14 Python
农村结婚典礼司仪主持词
2014/03/14 职场文书
绿色学校实施方案
2014/03/31 职场文书
幼儿园小班教师寄语
2014/04/03 职场文书
军训口号
2014/06/13 职场文书
学校开学标语
2014/10/06 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
Python竟然能剪辑视频
2021/05/25 Python
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技