xml.etree.ElementTree 模块实现了解析、创建XML数据的简单有效的API ,ElementTree模块拥有两个类

ElementTree: 代表整个XML文档,视作tree;用于对整个XML文档的操作;
Element: 代表XML文档(tree)上的单个节点;用于对XML节点及子节点的操作;

ElementTree类的方法:

1) _setroot(element)  #以element替代当前的root element, 参数element是element实例
2) getroot()                #获取XML tree的根element
3) parse(source, parser = None)   # 加载一个XML文件到element tree;

参数source是文件名或文件对象;parser默认为标准的XMLParser;返回root element
4) write(file, encoding = "us-ascii", xml_declaration = None, default_namespace = None, method = "xml", short_empty_elements = True)                                         # 将element tree写入xml文件;参数file - 文件名或文件对象;method为("xml", "html", "text"之一),默认为“xml”
5) iter(tag = None)        #创建并返回root element的tree iterator

6) find()/findall()/findtext()/iterfind      #同Element同样的方法
7) getiterator(tag = None) #

例:Parse XML
import xml.etree.ElementTree as ET
tree = ET.parse(xml_file_name)
root = tree.getroot() #获取XML文件的root元素
或者:
root = ET.fromstring(country_data_as_string) # ?

获取子节点信息:
for child in root:
  print (child.tag, child.attrib)

Element类
属性
======
tag # 元素类型:element type
text # 元素起始tag与结尾tag之间的文本
attrib #字典,包含了element的属性
tail #element结尾tag和下一个起始tag之间的文本

方法
======
1) clear()方法                      #重置element,去掉所有subelements,清除所有属性,并设置text及tail属性为None
2) get(key, default = None)      #获取element的属性 ,此属性命名为key?
3) items()                                 #获取以列表形式返回element的(name, value)对;顺序随机
4) keys()                                   #以列表形式返回element属性;顺序随机
5) set(key, value)                      #将key属性的元素的值设置为value

subelement的方法:
1) append(subelement) #添加一个subelement
2) extend(subelements) #通过列表对象追加0个或多个subelements
3) find(match, namespaces = None) # 查询第一个跟match匹配的subelement (以tag或者path)
4) findall(match, namespaces = None) #查询所有匹配的subelements
5) getchildren() # list(elem)
6) getiterator(tag = None) #Element.iter()
7) insert(index, subelement) #在指定位置插入subelement
8) iter(tag = None): 以当前element为root,创建一个tree iterator
9) iterfind(match, namespaces = None) #查询所有匹配的subelements
10) itertext() #创建一个text iteratror
11) makeelement(tag, attrib) #创建与当前element类型相同的element 对象;最好用SubElement()工厂方法替代此方法
12) remove(subelement) #去掉element的subelement;跟find*方法不同的是,此方法基于实例的identity,而不是tag或内容

转载于:https://www.cnblogs.com/tanql/p/4360164.html

python解析XML:之二 (ElementTree)相关推荐

  1. 用Python解析XML的几种常见方法的介绍

    这篇文章主要介绍了用Python解析XML的几种常见方法,包括快速的使用ElementTree模块等方法的实例介绍,需要的朋友可以参考下 一.简介 XML(eXtensible Markup Lang ...

  2. python 解析xml

    在工作中很多时候都要用到xml,使用这个时候难免会设计到解析他,然后就研究了一下python解析xml问题,看了很多东西,python有很多解析xml的包,但是也折腾我好一段时间,最后选择了这个方法. ...

  3. python解析xml+得到pascal voc xml格式用于目标检测+美化xml

    1.python解析xml img_path='./data/001.tif'xml_path='./xml/001.xml'img=cv2.imread(img_path)# cv2.imshow( ...

  4. python解析xml文件最好选用的模块_用Python解析XML文件

    本文翻译自:https://developer.yahoo.com/python/python-xml.html 使用Python解析XML文件 许多YDN APIs提供了JSON格式的数据输出,JS ...

  5. python解析xml生成代码_python解析xml模块封装代码

    有如下的xml文件: 复制代码 代码如下: 1 2 下面介绍python解析xml文件的几种方法,使用python模块实现. 方式1,python模块实现自动遍历所有节点: 复制代码 代码如下: #! ...

  6. python解析dom,关于Python解析xml dom的简单应用

    关于Python解析xml dom的简单应用 from xml.dom import minidom try: xmlfile = open("path.xml", "a ...

  7. python解析xml文件elementtree_Python中使用ElementTree解析XML示例

    [XML基本概念介绍] XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据. 概念一: 复制代码 代码如下: # foo元素的起始标签 ...

  8. python解析xml文件elementtree_Python XML解析之ElementTree

    参考网址: 菜鸟教程提供了基本的XML编程接口DOM.SAX,以及轻量级ElementTree的简易概念说明和一些示例.DOM是一种跨语言的XML解析机制,通过将整个XML在内存中解析为一个树来操作, ...

  9. python解析xml文件elementtree_Python 用ElementTree读取XML文件

    python有三种方法解析XML,SAX,DOM,以及ElementTree ###1.SAX (simple API for XML ) pyhton 标准库包含SAX解析器,SAX是一种典型的极为 ...

  10. python解析xml文件elementtree_在python中使用ElementTree解析xml文件

    ElementTree是python自带的处理xml格式文件的模块,位于libxmletreeElementTree.py.这个模块有两个基本概念:Element和ElementTree. 表示整个树 ...

最新文章

  1. Linux shell 学习笔记(9)— 循环语句(for、while)以及更改字段分隔符
  2. 英特尔宣布推出“Nervana”神经网络处理器
  3. IPC 和 RPC (呵呵,我感觉我应该要钻研到这个深度啦)
  4. Linux基础命令---get获取ftp文件
  5. “RuntimeWarning: overflow encountered in ubyte_scalars像素加减运算溢出异常”原因以及解决办法
  6. 机加工程序工时程序_团宠来袭 | 针对多品种小批量的机加工柔性生产解决方案...
  7. java第一天上班需要安装那些_明天第一天上班,应该带什么包啊
  8. ICCV2021 微软CMU提出TACo:同时用三个损失函数进行多模态对齐!性能SOTA!
  9. “忘恩负义”的浪胃仙,是个真狠人!
  10. IE环境下判断IE版本的语句...[if lte IE 6]……[endif][if lte IE 7]……[endif]
  11. 首次在matable中安装libsvm碰到的问题和解决方法---- mxGetIr 已过时 错误
  12. android平板管理工具,安卓平板如何提升使用效率,这17款软件你应该知道
  13. typedef常见用法
  14. verilog符号 与或非 异或_与()、非(~)、或(|)、异或(^)
  15. 2055041-21-7,Acid-PEG4-S-PEG4-acid在EDC和HATU等活化剂存在下,羧酸基团可与伯胺反应
  16. OI游记——一个不配称为OIer的失败选手的自白
  17. 21. 查询表sc——查询平均成绩大于等于90分的学生学号和平均成绩
  18. 莫比乌斯反演入门题目(详细)
  19. Software Architecture Pattern(Mark Richards)笔记
  20. 区块链金融中的python应用--LSM定价

热门文章

  1. Centos7 Kubernetes(k8s) 开发服务器(单服务器)部署 elasticsearch 搜索引擎
  2. Pinyin4j 汉字转拼音使用教程
  3. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-2.快速搭建SpringBoot项目,采用IDEA...
  4. 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_8 响应json数据之响应json格式数据...
  5. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_5_Stream流中的常用方法_map...
  6. Java NIO框架 Mina、Netty、Grizzly
  7. 玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)
  8. Yii2如何用migrate快速建表
  9. JS调用asp.net后台方法:PageMethods
  10. 你还不懂云计算吗?资深互联网老大详细讲解云计算的应用