如何用Python输出漂亮的xml文件

Python06

如何用Python输出漂亮的xml文件,第1张

你的问题可以直接转化为python如何读取文件,使用这句代码:open('thefile.xml').read( ) 下面是例子: >>>open('D:\\Test.xml',encoding='utf8').read()不知道为什么,python3.4中读取文件的默认使用GBK,这一点要注意

最近要用python生成一个xml格式的文件。因为有一些内容是中文,原来的xml文件中使用了CDATA 的部分。 而之前的python程序所用的库中没有 创建这个区域的方法。无奈研究了大半天。 最后用了 from lxml import etree 这个库的方法。 这里将可运行的 python程序分享出来。 供大家参考。 经过测试,这段代码是可以直接运行生成xml格式内容的。

1 # -*- coding:utf-8 -*-

2 import sys

3 import time

4 import string

5

6 from lxml import etree

7

8

9 #设置默认字符集为UTF8 不然有些时候转码会出问题

10 default_encoding = 'utf-8'

11 if sys.getdefaultencoding() != default_encoding:

12 reload(sys)

13 sys.setdefaultencoding(default_encoding)

14

15 def create_xml():

16

17 data = etree.Element("data")

18 #1 interface_version

19 interface_version_txt = '5'

20 interface_version = etree.SubElement(data, 'interface_version')

21 interface_version.text = interface_version_txt

22 #2 site

23 site_txt = 'www.xxx.com'

24 site = etree.SubElement(data, 'site')

25 site.text = site_txt

26 #3 lastmod

27 lastmod_txt = time.strftime('%Y-%m-%d', time.localtime())

28 lastmod = etree.SubElement(data, 'lastmod')

29 lastmod.text = lastmod_txt

30 #5 app

31 app = etree.SubElement(data, 'app')

32 #6 title

33 title_txt = u'%s' % '真心话大冒险'

34 title_txt = etree.CDATA(title_txt)

35 title = etree.SubElement(app, 'title')

36 title.text = title_txt

37 #7 appid

38 appid = etree.SubElement(app, 'appid')

39 appid.text = '%s' % '222'

40

41 dataxml = etree.tostring(data, pretty_print=True, encoding="UTF-8", method="xml", xml_declaration=True, standalone=None)

42 print dataxml

43

44

47 if __name__ == '__main__':

48 create_xml()