python elementtree乱码_python ElementTree
每个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相关推荐
- python elementtree乱码_Python中使用ElementTree解析xml
在Python中,ElementTree是我们常用的一个解析XML的模块 1.导入ElementTree模块 from xml.etree import ElementTree as ET 2.初始化 ...
- python 中文乱码_python 解决cv2绘制中文乱码问题
前几天在公司敲出了个BUG,硬是让我头疼了一阵子,没想到BUG的起因竟是一点小小的细节问题,唉!被折磨的够呛,又让我想起那时候遇到的python cv2绘制中文乱码,差不多也是同样的感受. 为此今天我 ...
- python urlopen 乱码_Python 2.7.3 urllib2.urlopen 获取网页出现乱码解决方案
出现乱码的原因是,网页服务端有bug,它硬性使用使用某种特定的编码方案,而并没有按照客户端的请求头的编码要求来发送编码. 解决方案:使用chardet来猜测网页编码. 1.去chardet官网下载ch ...
- python zipfile 乱码_python zipfile文件名乱码问题
zipfile文件名乱码问题 接到一个解压zip文件的任务.在几百G的文件里面找到zip文件,并解压到当前目录.这个任务看似很简单,但是全都是坑的. 被坑的第一点,文件名乱码.搜索博客里面的教程,一般 ...
- python idea控制台中文乱码_python 解决cv2绘制中文乱码问题
python 解决cv2绘制中文乱码问题 因为使用cv2.putText() 只能显示英文字符,中文会出现乱码问题, 因此使用PIL在图片上绘制添加中文,可以指定字体文件. 大体思路: OpenCV图 ...
- python判断汉字个数_python判断列表里数量python中文乱码问题大总结
在运行这样类似的代码:#!/usr/bin/env python s="中文" print s 最近经常遇到这样的问题: 问题一:SyntaxError: Non-ASCII ch ...
- python输出结果乱码_python输出结果乱码怎么办
Python中文乱码的原因,Python中文乱码是由于Python在解析网页时默认用Unicode去解析,而大多数网站是utf-8格式的,并且解析 出来之后,python竟然再以Unicode字符格式 ...
- Python学习教程(Python学习视频_Python学些路线):Day05 总结和练习
Python学习教程(Python学习视频_Python学些路线):总结和练习 练习清单 寻找"水仙花数". 寻找"完美数". "百钱百鸡" ...
- 解决python中文乱码的方法
解决python中文乱码的方法 参考文章: (1)解决python中文乱码的方法 (2)https://www.cnblogs.com/bobodeboke/p/11935876.html 备忘一下.
最新文章
- 云上人第七代产品简单的代码
- yolo v3学习笔记
- FFmpeg视频转码技巧之-crf参数(H.264篇)
- PHP下实现两种ajax跨域的解决方案之jsonp
- c# 单元测试工程如何取得当前项目路径
- 工作不能混日子,给自己留言
- STM32CubeMX GPIO的使用
- 电脑重启 硬件问题引发的人品问题
- PLL与PHY的连接:通道绑定或者不绑定
- 多线程_并发_同步_快乐影院
- cpu发热测试软件,如何检测CPU的温度?这些软件少不了
- animate将flash转换html,Animate—flash动画入门到精通教程
- java myeclipse的好处,关于MyEclipse_MyEclipse用途_MyEclipse优势
- 一起来云赏月把!three.js实现vr赏月!
- 电商兴头上的丁磊请注意,阿里云在用AI养猪了
- 如何申请独立服务商(支付宝ISV)
- 修改Chromium源码实现HEVC/H.265 4K视频播放
- Workflow:Workflow 百科
- 彻底弄懂I420格式
- 基于stm32单片机的温湿度火灾检测报警仓库管理系统(实物图+源码+原理图+全套资料)
热门文章
- python内置模块大全_python知识汇总(异常、内置模块和打包)
- c语言prime函数怎么用_C语言教程_v20201106
- 贴吧用html标签,html标签3(转载)
- 液晶屏和计算机组成,液晶显示屏结构是什么 液晶显示屏结构介绍【图文】
- 2017长春java平均工资_2016年长春在岗职工社会平均工资出炉:66948元,月平均工资5579元...
- Vue -- 如何在 span 标签上实现一个点击事件
- 如何将本地项目提交到git服务器中
- Android Room 之存储 Objects 中的 List
- 判断字符串解析是JsonObject或者JsonArray
- Oracle内存管理(五)