使用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多线程http下载实现示例
Dec 30 Python
Python处理文本换行符实例代码
Feb 03 Python
python 3.6.2 安装配置方法图文教程
Sep 18 Python
python http基本验证方法
Dec 26 Python
python读取指定字节长度的文本方法
Aug 27 Python
安装python及pycharm的教程图解
Oct 10 Python
python列表推导式操作解析
Nov 26 Python
python各层级目录下import方法代码实例
Jan 20 Python
matlab中imadjust函数的作用及应用举例
Feb 27 Python
Python实现画图软件功能方法详解
Jul 28 Python
python 进阶学习之python装饰器小结
Sep 04 Python
再谈python_tkinter弹出对话框创建
Mar 20 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 不使用js实现页面跳转
2014/02/11 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
Zend Framework教程之Bootstrap类用法概述
2016/03/14 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
checkbox 复选框不能为空
2009/07/11 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
layui form表单提交后实现自动刷新
2019/10/25 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
深入解析Python中的lambda表达式的用法
2015/08/28 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
基于Python实现用户管理系统
2019/02/26 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
Python PyPDF2模块安装使用解析
2020/01/19 Python
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
苹果音乐订阅:Apple Music
2018/08/02 全球购物
下列程序在32位linux或unix中的结果是什么
2014/03/25 面试题
2013年军训通讯稿
2014/02/05 职场文书
会计专业导师推荐信
2014/03/08 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
结婚典礼致辞
2015/07/28 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python