使用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写的英文字符大小写转换代码示例
Mar 06 Python
python制作一个桌面便签软件
Aug 09 Python
详解Python中映射类型的内建函数和工厂函数
Aug 19 Python
Python压缩解压缩zip文件及破解zip文件密码的方法
Nov 04 Python
Python自定义一个异常类的方法
Jun 27 Python
Python 获取ftp服务器文件时间的方法
Jul 02 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
Python socket聊天脚本代码实例
Jan 02 Python
使用PyQt5实现图片查看器的示例代码
Apr 21 Python
Django 解决开发自定义抛出异常的问题
May 21 Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 Python
Python3的进程和线程你了解吗
Mar 16 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
S900/ ETON E1-XM 收音机
2021/03/02 无线电
javascript 数组学习资料收集
2010/04/11 Javascript
Extjs TimeField 显示正常时间格式的代码
2011/06/28 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
js监听滚动条滚动事件使得某个标签内容始终位于同一位置
2014/01/24 Javascript
js 判断控件获得焦点的示例代码
2014/03/04 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
JavaScript 控制字体大小设置的方法
2016/11/23 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
Python 文件读写操作实例详解
2014/03/12 Python
python将图片文件转换成base64编码的方法
2015/03/14 Python
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
查看keras的默认backend实现方式
2020/06/19 Python
python文件编写好后如何实践
2020/07/07 Python
详解python with 上下文管理器
2020/09/02 Python
python实现文件分片上传的接口自动化
2020/11/19 Python
python连接mongodb数据库操作数据示例
2020/11/30 Python
季度思想汇报
2014/01/01 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
社区戒毒工作方案
2014/06/04 职场文书
代办委托书怎么写
2014/08/01 职场文书
2015年社区党建工作汇报材料
2015/06/25 职场文书
python基础之文件处理知识总结
2021/05/23 Python
Java数据结构之堆(优先队列)
2022/05/20 Java/Android