Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree。

首先 import 之:

from xml.etree import ElementTree as etree

然后开始构建 xml 树:

from xml.etree.ElementTree import Element, SubElement, ElementTree

# 生成根节点

root = Element('root')

# 生成第一个子节点 head

head = SubElement(root, 'head')

# head 节点的子节点

title = SubElement(head, 'title')

title.text = 'Well Dola!'

# 生成 root 的第二个子节点 body

body = SubElement(root, 'body')

# body 的内容

body.text = 'I love Dola!'

tree = ElementTree(root)

这样就得到了一个 xml 树的对象 tree 以及它的根节点的对象 root

接着我们把它们变成 xml 串,有两个办法,一个是用 tree 对象的 write 方法将 xml 内容写成一个文件,还有一个是用 etree 的 tostring 方法转成 xml 字符串:

# 第一种

tree.write('result.xml', encoding='utf-8')

# 第二种

xml_string = etree.tostring(root)

# xml_string 就是 xml 字符串了

但是第二种有一个问题,就是它没有

这个头部定义内容:

'Well Dola!I love Dola!'

怎么办呢?

有一个办法是使用 minidom 来实现,方法如下:

from xml.dom import minidom

# 使用 minidom 解析

tree = minidom.parseString(xml_string)

# 重新生成 xml 字符串

xml_string = tree.toxml()

虽然让计算机多运行了一些代码,但是这样可以把问题解决掉。

最后生成的 xml 代码如下:

u'<?xml version="1.0" ?>Well Dola!I love Dola!'

当然还可以使用 minidom 中 tree 对象的 toprettyxml 方法把 xml 打得漂亮一点。

补充知识:Python ElementTree 导出 xml 缺少 开头声明

使用ElementTree修改完xml后,写入文件时,发现开头缺少了 <?xml version='1.0' encoding='utf-8'?>

解决办法:

在调用ElementTree的write方法写入xml时,参数里增加 encoding=‘utf-8' 以及 xml_declaration=True

et_root.write('file。xml', encoding='utf-8', xml_declaration=True)

以上这篇利用 Python ElementTree 生成 xml的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: 利用 Python ElementTree 生成 xml的实例

本文地址: http://www.cppcns.com/jiaoben/python/302318.html

python etree创建xml_利用 Python ElementTree 生成 xml的实例相关推荐

  1. python按模板生成html_python 利用jinja2模板生成html代码实例

    这篇文章主要介绍了python 利用jinja2模板生成html代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下from jinja2 imp ...

  2. 用python做数据分析pdf_利用python进行数据分析pdf

    利用python进行数据分析pdf微盘下载!<利用python进行数据分析>利用Python实现数据密集型应用由浅入深帮助读者解决数据分析问题~适合刚刚接触Python的分析人员以及刚刚接 ...

  3. Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略

    Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名.合并两个不同路径下图片文件名等目录/路径案例.正确加载图片路径)之详细攻略 目录 利用python ...

  4. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  5. 第一个程序(python)-helloworld_创建第一个python程序:‘Hello World!’

    安装好python解释器就可以创建第一个仪式程序Helloworld了 1.Python程序的3种运行方式 1.1.Python解释器直接运行 在Windows或者Linux命令行输入python,进 ...

  6. Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件

    Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 目录 利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 1.先下载ff ...

  7. Python基础笔记_Day12_Python元类、type动态创建类、Python动态创建方法、Python运算符、Python发邮件、短信

    Day12_Python元类.type动态创建类.Python动态创建方法.Python运算符重载.Python发邮件.短信 12.01_Python语言基础(类对象)(熟悉) 12.02_Pytho ...

  8. 使用 Python ElementTree 生成 xml

    Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree. 首先 import 之: 1 from xml.etree import Ele ...

  9. python 词云_利用Python生成词云

    利用Python生成词云 一.第三方库的安装与介绍 1.1  Python第三方库jieba(中文分词) 1.介绍 "结巴"中文分词:做最好的 Python 中文分词组件. 2.特 ...

最新文章

  1. (2)iOS用UICollectionView实现Gallery效果
  2. EFQRCode:自动生成花式二维码
  3. 机械转行的都干啥去了?机械转行计算机难吗?
  4. 基于WinSvr2012共享文件夹的Hyper-V实时迁移之三实时迁移的实现及验证
  5. Android端调用Caffe模型实现CNN分类
  6. 删除 Mac AppStore 正在下载的应用
  7. linux内核配置与编译,LINUX内核的配置与编译、安装
  8. 超详细springboot热部署
  9. APP 怎么进行抓包接口测试
  10. Java程序员月薪三万,需要技术达到什么水平?
  11. English trip V1 - 20.Look at me 看着我 Teacher:Solo Key: 声调(英语默认就声调[rising]和降调[falling]两种)...
  12. 基于S3C2440A的DM9000A的调试笔记
  13. cocoscreator 资源加密
  14. Godaddy网站SSL证书安装
  15. matlab绘制香农定理曲线,基于matla对香农公式仿真.doc
  16. 微信跳转浏览器html5,微信跳转浏览器或提示手机端打开HTML代码 最新
  17. 为什么要选择云原生数据库
  18. 软考java题目_软件工程软考题目总结
  19. 小麦苗健康检查脚本说明
  20. Python 命令行cmd指定颜色设置

热门文章

  1. C语言实验——打印金字塔_JAVA
  2. Caffe代码导读(4):数据集准备
  3. jQuery最佳实践
  4. 软件重构过程中的思维转换: 遗留代码如何变废为宝
  5. 线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
  6. PageRank算法并行实现
  7. 程序员面试题精选100题(09)-链表中倒数第k个结点[数据结构]
  8. 程序员面试题精选100题(06)-二元查找树的后序遍历结果[数据结构]
  9. 关于知识整理、积累与记忆
  10. 【OpenCV3】cv::compare()使用详解