使用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 相关文章推荐
17个Python小技巧分享
Jan 23 Python
Python实现给文件添加内容及得到文件信息的方法
May 28 Python
Python的Django框架中自定义模版标签的示例
Jul 20 Python
将Python代码打包为jar软件的简单方法
Aug 04 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
Nov 07 Python
python虚拟环境的安装配置图文教程
Oct 20 Python
Python实现的计算器功能示例
Apr 26 Python
python模拟表单提交登录图书馆
Apr 27 Python
python实现全盘扫描搜索功能的方法
Feb 14 Python
Django在pycharm下修改默认启动端口的方法
Jul 26 Python
Python中的整除和取模实例
Jun 03 Python
Python数组变形的几种实现方法
May 30 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
source.php查看源文件
2006/12/09 PHP
php读取msn上的用户信息类
2008/12/05 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php处理复杂xml数据示例
2016/07/11 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
自己动手开发jQuery插件教程
2011/08/25 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
jquery判断滚动条距离顶部的距离方法
2018/09/05 jQuery
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
python支持多线程的爬虫实例
2019/12/21 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
H5最强接口之canvas实现动态图形功能
2019/05/31 HTML / CSS
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
幼儿教育感言
2014/02/05 职场文书
2014社区三八妇女节活动总结
2014/03/01 职场文书
公司运动会策划方案
2014/05/25 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
《伯牙绝弦》教学反思
2016/02/16 职场文书
关于考试抄袭的检讨书
2019/11/02 职场文书