天天看點

Python XML生成

最近要用python生成一個xml格式的檔案。因為有一些内容是中文,xml檔案中使用了CDATA 的部分。  最後用了 from lxml import etree 這個。  供大家參考。 經過測試,這段代碼是可以直接運作生成xml格式内容的。 網上參考的主要是 http://lxml.de/api/index.html 這個網頁。

這個包的下載下傳位址

​​https://pypi.python.org/pypi/lxml/3.4.1​​

我下載下傳了3.4.1的版本放在網盤了,位址 http://pan.baidu.com/s/1i3kosXv

安裝方法為:

tar xvf lxml-3.4.1.tar.gz

cd 

python setup.py build

# -*- coding:utf-8 -*-
import sys
import time
import string
 
from lxml import etree


#設定預設字元集為UTF8 不然有些時候轉碼會出問題
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
    reload(sys)
    sys.setdefaultencoding(default_encoding)

def create_xml():

    data = etree.Element("data")
    #1 interface_version
    interface_version_txt = '5'
    interface_version = etree.SubElement(data, 'interface_version')
    interface_version.text = interface_version_txt
    #2 site
    site_txt = 'www.xxx.com'
    site = etree.SubElement(data, 'site')
    site.text = site_txt
    #3 lastmod
    lastmod_txt = time.strftime('%Y-%m-%d', time.localtime())
    lastmod = etree.SubElement(data, 'lastmod')
    lastmod.text = lastmod_txt
    #5 app
    app = etree.SubElement(data, 'app')
    #6 title 
    title_txt = u'%s' % '真心話大冒險'
    title_txt = etree.CDATA(title_txt)
    title = etree.SubElement(app, 'title')
    title.text = title_txt
    #7 appid
    appid = etree.SubElement(app, 'appid')
    appid.text = '%s' % '222'

    dataxml = etree.tostring(data, pretty_print=True, encoding="UTF-8", method="xml", xml_declaration=True, standalone=None)
    print dataxml
    
     
if __name__ == '__main__':
    create_xml()