zoukankan      html  css  js  c++  java
  • 如何使用python生成xml

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

     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()
  • 相关阅读:
    浮点数二分
    [模板]整数二分
    Mybatis实现增删改查
    如何使用 KEIL 下载 HEX 文件?
    线程CPU使用率该如何计算?
    单片机里面的CPU使用率是什么鬼?
    ASP.NET Core 3.1使用JWT认证Token授权 以及刷新Token
    ASP.NET Core 3.1使用Swagger API接口文档
    Visual Studio 默认git拉取Github出错 No error could not read Username for 'https://github.com': terminal prompts disabled
    ASP.NET Core 3.1使用log4net/nlog/Serilog记录日志
  • 原文地址:https://www.cnblogs.com/fupeng/p/3970951.html
Copyright © 2011-2022 走看看