本文实例讲述了使用Python生成XML的方法。分享给大家供大家参考,具体如下:
1. bookstore.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<? 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<? 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程序设计有所帮助。