这里有新鲜出炉的 Python3 官方中文指南,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
这篇文章主要介绍了使用 Python 生成 XML 的方法, 结合具体实例形式详细分析了 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>
希望本文所述对大家 Python 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0711/332853.html