python解析xml文件之xml.etree.cElementTree和xml.etree.ElementTree区别

Posted 沧海一粟,何以久远

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python解析xml文件之xml.etree.cElementTree和xml.etree.ElementTree区别相关的知识,希望对你有一定的参考价值。

1、解析速度:ElementTree在 Python 标准库中有两种实现。一种是纯 Python 实现例如 xml.etree.ElementTree ,另外一种是速度快一点的 xml.etree.cElementTree 。你要记住: 尽量使用 C 语言实现的那种,因为它速度更快,而且消耗的内存更少。

2、调试区别

使用cElementTree的话,在pycharm的debug模式下,是看不到内容的

使用ElementTree,可以看到丰富信息,子节点,子节点的子节点等等,非常方便开发

3、所以对于线上产品应该使用下面这种的方式,但是开发的时候,应该使用 import xml.etree.ElementTree as ET

try:
    import xml.etree.cElementTree as ET
except ImportError:
    import xml.etree.ElementTree as ET

tree = ET.parse(config_file)

 tree = ET.parse(config_file)或者tree = ET.fromstring(string),可以从文件或者字符串中解析到xml的结构

 

基本使用:

1、可以从文件或者字符串中解析到xml的结构

从硬盘的文件解析

import xml.etree.ElementTree as ET
tree = ET.parse(\'country_data.xml\')
root = tree.getroot()

直接从字符串解析:

root = ET.fromstring(country_data_as_string)

2、查找元素:

Element.findall() finds only elements with a tag which are direct children of the current element. Element.find() finds the first child with a particular tag, and Element.text accesses the element’s text content. Element.get() accesses the element’s attributes:

3、修改元素:

增加新节点: Element.append()

增加或者修改属性:Element.set()

修改内容: Element.text

创建xml文件: ElementTree.write()

删除节点:Element.remove()




2、

参考:

1、https://www.biaodianfu.com/python-xml.html

2、https://docs.python.org/2/library/xml.etree.elementtree.html

3、http://effbot.org/zone/element.htm

以上是关于python解析xml文件之xml.etree.cElementTree和xml.etree.ElementTree区别的主要内容,如果未能解决你的问题,请参考以下文章

python解析xml文件之xml.etree.cElementTree和xml.etree.ElementTree区别

python xml解析之 xml.etree.ElementTree

Python之XML

一文入门XML之实例解析

人生苦短,我学python之python xml数据解析

Python 之lxml解析模块