使用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编程实现微信企业号文本消息推送功能示例
Aug 21 Python
Python批量发送post请求的实现代码
May 05 Python
Python3多线程操作简单示例
May 22 Python
Python Requests库基本用法示例
Aug 20 Python
Python功能点实现:函数级/代码块级计时器
Jan 02 Python
pandas中的数据去重处理的实现方法
Feb 10 Python
Python基于requests库爬取网站信息
Mar 02 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
Mar 05 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
Python中的None与 NULL(即空字符)的区别详解
Sep 24 Python
如何利用Matlab制作一款真正的拼图小游戏
May 11 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 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之第四天
2006/10/09 PHP
php 高性能书写
2010/12/11 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
php如何连接sql server
2015/10/16 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
php实现记事本案例
2020/10/20 PHP
过虑特殊字符输入的js代码
2010/08/05 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
jQuery切换网页皮肤并保存到Cookie示例代码
2014/06/16 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
jquery+css实现下拉列表功能
2017/09/03 jQuery
js实现扫雷小程序的示例代码
2017/09/27 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
django解决跨域请求的问题
2018/11/11 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
python开发游戏的前期准备
2019/05/05 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
python IP地址转整数
2020/11/20 Python
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
印度尼西亚值得信赖的第一家网店:Bhinneka
2018/07/16 全球购物
食品行业求职人的自我评价
2014/01/19 职场文书
2014年创卫实施方案
2014/02/18 职场文书
初级党校心得体会
2014/09/11 职场文书
质量整改通知单
2015/04/21 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python