使用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 相关文章推荐
Python3处理文件中每个词的方法
May 22 Python
python基于物品协同过滤算法实现代码
May 31 Python
python迭代dict的key和value的方法
Jul 06 Python
Python使用googletrans报错的解决方法
Sep 25 Python
python列表每个元素同增同减和列表元素去空格的实例
Jul 20 Python
Python字符串处理的8招秘籍(小结)
Aug 13 Python
win10子系统python开发环境准备及kenlm和nltk的使用教程
Oct 14 Python
利用python实现冒泡排序算法实例代码
Dec 01 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
Jul 21 Python
python异常中else的实例用法
Jun 15 Python
python四种出行路线规划的实现
Jun 23 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
一个PHP针对数字的加密解密类
2014/03/20 PHP
Laravel4中的Validator验证扩展用法详解
2016/07/26 PHP
$.each遍历对象、数组的属性值并进行处理
2014/07/18 Javascript
jQuery标签替换函数replaceWith()的使用例子
2014/08/28 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
nodejs学习笔记之路由
2017/03/27 NodeJs
JavaScript控制浏览器全屏显示简单示例
2018/07/05 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
Vue瀑布流插件的使用示例
2018/09/19 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
python ElementTree 基本读操作示例
2009/04/09 Python
python快速排序代码实例
2013/11/21 Python
Python中的with...as用法介绍
2015/05/28 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
学python安装的软件总结
2019/10/12 Python
使用Python的Turtle库绘制森林的实例
2019/12/18 Python
django ajax发送post请求的两种方法
2020/01/05 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
优秀员工自荐书
2013/12/19 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
求职个人评价范文
2014/04/09 职场文书
高二学生评语大全
2014/04/25 职场文书
建筑安全责任书范本
2014/07/24 职场文书
2014年财政工作总结
2014/12/10 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
失恋33天观后感
2015/06/11 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
SpringBoot 集成短信和邮件 以阿里云短信服务为例
2022/04/22 Java/Android