使用Python生成XML的方法实例

本文实例讲述了使用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>

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:

以上是 使用Python生成XML的方法实例 的全部内容, 来源链接: utcz.com/z/319860.html

回到顶部