Python专辑我爱编程

Python生成XML文件

2017-01-07  本文已影响5461人  VeyronC

欲成这样的xml结构

<?xml version="1.0" encoding="utf-8"?>
    <DOCUMENT content_method="full">
        <item>
            <key>Key1</key>
            <display>
                <url>https://baidu.com/</url>
                <title>北京市公积金咨询电话</title>
            </display>
        </item>
    </DOCUMENT>

需要如下代码:

#encoding:utf-8
'''
根据一个给定的XML Schema,使用DOM树的形式从空白文件生成一个XML。
'''
from xml.dom.minidom import Document
doc = Document()  #创建DOM文档对象
DOCUMENT = doc.createElement('DOCUMENT') #创建根元素
DOCUMENT.setAttribute('content_method',"full")#设置命名空间
#DOCUMENT.setAttribute('xsi:noNamespaceSchemaLocation','DOCUMENT.xsd')#引用本地XML Schema
doc.appendChild(DOCUMENT)
############item:Python处理XML之Minidom################
item = doc.createElement('item')
#item.setAttribute('genre','XML')
DOCUMENT.appendChild(item)
key = doc.createElement('key')

key_text = doc.createTextNode('Key1') #元素内容写入
key.appendChild(key_text)
item.appendChild(key)
display = doc.createElement('display')
item.appendChild(display)
display_url = doc.createElement('url')
display_title  = doc.createElement('title')
display_url_text = doc.createTextNode('https://baidu.com/')
display_title_text  = doc.createTextNode('北京市公积金咨询电话')
display.appendChild(display_url)
display.appendChild(display_title)
display_url.appendChild(display_url_text)
display_title.appendChild(display_title_text)
item.appendChild(display)
'''
price = doc.createElement('price')
price_text = doc.createTextNode('28')
price.appendChild(price_text)
item.appendChild(price)
'''
########### 将DOM对象doc写入文件
f = open('tel.xml','w')
#f.write(doc.toprettyxml(indent = '\t', newl = '\n', encoding = 'utf-8'))
doc.writexml(f,indent = '\t',newl = '\n', addindent = '\t',encoding='utf-8')
f.close()

dom对象树已经生成好了,我们可以调用dom的writexml()方法来将内容写入文件中。writexml()方法语法格式为:
writexml(writer, indent, addindent, newl, encoding)

廖雪峰Python:
操作XML有两种方法:DOM和SAX。DOM会把整个XML读入内存,解析为树,因此占用内存大,解析慢,优点是可以任意遍历树的节点。SAX是流模式,边读边解析,占用内存小,解析快,缺点是我们需要自己处理事件。

上一篇 下一篇

猜你喜欢

热点阅读