每个element对象都具有以下属性:

1. tag:string对象,表示数据代表的种类。

2. attrib:dictionary对象,表示附有的属性。

3. text:string对象,表示element的内容。

4. tail:string对象,表示element闭合之后的尾迹。

5. 若干子元素(child elements)。

texttail

1     2        3         4

在使用xml.etree.ElementTree时,一般都按如下导入:

try:    import xml.etree.cElementTree as ET

except ImportError:    import xml.etree.ElementTree as ET

下面我写的例子:

from xml.etree import ElementTree as ET

if __name__ == "__main__":

infile = "/Users/sunxichao/a.xml"

parse_xml = ET.parse(infile)

#parse_xml.iter()可以直接形成Element列表进行循环遍历xml文件

#如:for i in parse_xml.iter():

#  print i.tag

dict = parse_xml.getroot()    #获得根节点,我实验的结果是必须得写上

#获得dict的信息:  print dict.tag,dict.attrib,dict.tail,dict.text

#dict.getchildren(),dict的一级子节点Element构成的列表

#    . 当前节点     *匹配所有一级子节点       //匹配所有子节点,包括子子...子节点

iter =  dict.find("./array/dict//")   #find是寻找到第一个匹配的

iterall=dict.findall("./array/dict//")

#findall 匹配所有符合的所有Element构成列表

# "./array/dict/" 只返回符合要求的一级子节点

for i in iter 可以循环iter的一级子节点

iter[0],iter[1]...同样适用  #  只要存在iter[m][n]也适用,如iter[0][0].tag

对Element操作

Element.get(key, default=None)    #比如dict.get("name",None),

#获取key对应的属性值,如该属性不存在则返回default值

Element.items()            #根据属性字典返回一个列表,列表元素为(key, value)

Element.keys()             #返回包含所有元素属性键的列表

Element.set(key, value)    #设置新的属性键与值

Element.clear()            #清空元素的后代、属性、text和tail也设置为None

a = ET.Element('elem')     #生成一个节点,tag = "elem"

b = ET.SubElement(a, 'child1')   #分别在a下面生成节点b,c

c = ET.SubElement(a, 'child2')

root.extend((a,))     #把节点a连同附带的子节点一起插入到xml文件,tag="root"下

root.extend((b,c))    #把节点b,c连同各自附带的子节点按照顺序插入到xml文件,tag="root"下

#输出整个文档

inport sys

tree = ET.ElementTree(root)

tree.write(sys.stdout)

推荐使用::iterparse 方法的使用,遍历整个xml文件

for event,elem in ET.iterparse("a.xml"):

if event == "end":   #检测闭合标签,elem是Element对象

print "event: " ,event," elem : ",elem.tag

输出结果:

event:  end  elem :  key

event:  end  elem :  dict

event:  end  elem :  array

event:  end  elem :  dict

python elementtree乱码_python ElementTree相关推荐

  1. python elementtree乱码_Python中使用ElementTree解析xml

    在Python中,ElementTree是我们常用的一个解析XML的模块 1.导入ElementTree模块 from xml.etree import ElementTree as ET 2.初始化 ...

  2. python 中文乱码_python 解决cv2绘制中文乱码问题

    前几天在公司敲出了个BUG,硬是让我头疼了一阵子,没想到BUG的起因竟是一点小小的细节问题,唉!被折磨的够呛,又让我想起那时候遇到的python cv2绘制中文乱码,差不多也是同样的感受. 为此今天我 ...

  3. python urlopen 乱码_Python 2.7.3 urllib2.urlopen 获取网页出现乱码解决方案

    出现乱码的原因是,网页服务端有bug,它硬性使用使用某种特定的编码方案,而并没有按照客户端的请求头的编码要求来发送编码. 解决方案:使用chardet来猜测网页编码. 1.去chardet官网下载ch ...

  4. python zipfile 乱码_python zipfile文件名乱码问题

    zipfile文件名乱码问题 接到一个解压zip文件的任务.在几百G的文件里面找到zip文件,并解压到当前目录.这个任务看似很简单,但是全都是坑的. 被坑的第一点,文件名乱码.搜索博客里面的教程,一般 ...

  5. python idea控制台中文乱码_python 解决cv2绘制中文乱码问题

    python 解决cv2绘制中文乱码问题 因为使用cv2.putText() 只能显示英文字符,中文会出现乱码问题, 因此使用PIL在图片上绘制添加中文,可以指定字体文件. 大体思路: OpenCV图 ...

  6. python判断汉字个数_python判断列表里数量python中文乱码问题大总结

    在运行这样类似的代码:#!/usr/bin/env python s="中文" print s 最近经常遇到这样的问题: 问题一:SyntaxError: Non-ASCII ch ...

  7. python输出结果乱码_python输出结果乱码怎么办

    Python中文乱码的原因,Python中文乱码是由于Python在解析网页时默认用Unicode去解析,而大多数网站是utf-8格式的,并且解析 出来之后,python竟然再以Unicode字符格式 ...

  8. Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习

    Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...

  9. 解决python中文乱码的方法

    解决python中文乱码的方法 参考文章: (1)解决python中文乱码的方法 (2)https://www.cnblogs.com/bobodeboke/p/11935876.html 备忘一下.

最新文章

  1. 云上人第七代产品简单的代码
  2. yolo v3学习笔记
  3. FFmpeg视频转码技巧之-crf参数(H.264篇)
  4. PHP下实现两种ajax跨域的解决方案之jsonp
  5. c# 单元测试工程如何取得当前项目路径
  6. 工作不能混日子,给自己留言
  7. STM32CubeMX GPIO的使用
  8. 电脑重启 硬件问题引发的人品问题
  9. PLL与PHY的连接:通道绑定或者不绑定
  10. 多线程_并发_同步_快乐影院
  11. cpu发热测试软件,如何检测CPU的温度?这些软件少不了
  12. animate将flash转换html,Animate—flash动画入门到精通教程
  13. java myeclipse的好处,关于MyEclipse_MyEclipse用途_MyEclipse优势
  14. 一起来云赏月把!three.js实现vr赏月!
  15. 电商兴头上的丁磊请注意,阿里云在用AI养猪了
  16. 如何申请独立服务商(支付宝ISV)
  17. 修改Chromium源码实现HEVC/H.265 4K视频播放
  18. Workflow:Workflow 百科
  19. 彻底弄懂I420格式
  20. 基于stm32单片机的温湿度火灾检测报警仓库管理系统(实物图+源码+原理图+全套资料)

热门文章

  1. python内置模块大全_python知识汇总(异常、内置模块和打包)
  2. c语言prime函数怎么用_C语言教程_v20201106
  3. 贴吧用html标签,html标签3(转载)
  4. 液晶屏和计算机组成,液晶显示屏结构是什么 液晶显示屏结构介绍【图文】
  5. 2017长春java平均工资_2016年长春在岗职工社会平均工资出炉:66948元,月平均工资5579元...
  6. Vue -- 如何在 span 标签上实现一个点击事件
  7. 如何将本地项目提交到git服务器中
  8. Android Room 之存储 Objects 中的 List
  9. 判断字符串解析是JsonObject或者JsonArray
  10. Oracle内存管理(五)