最近因为工程原因,需要用python来解析xml文件,python自带了解析xml的module。这个Module的document网址是:https://docs.python.org/2/library/xml.etree.elementtree.html
原本想要自己写一下的,但是阅读了官方文档之后,发现直接翻译原文一些我认为有用的部分,可能更好理解。
New in version 2.5.
Source code: Lib/xml/etree/ElementTree.py
XML是一种固有的分层数据格式,所以最自然的表示方式就是用树来表示它。针对这个目的,设计了
xml.etree.ElementTree as ET
里面的两个类来实现。一个类是ElementTree
,把整个XML文档表现为一棵树,另一个类是Element
,表示这棵树上面的一个节点。
Element
Element类型是一个灵活的包装器对象,它被设计用来在内存里包装分层的数据结构,这个类型既像列表,又像字典。
Element
的类内变量:
tag
:一个string,它定义了Element
的类型。attributes
:一系列属性,存放在python的字典里。text
: 一个string,Element
的文本。an optional tail string
:一个可操作的尾部字符串,暂时不知道用来干嘛的。child elements
:一系列子element,存放在python的sequence里面
如何创建一个Element
实例:
使用Element
构造器或者是SubElement()
方法
import xml.etree.ElementTree as ET
a = ET.Element('UESTC', tag='gzh', attrib={
"name": 'GZHermit',"age":'16'})#这里的16不能用int,必须得用string
ET.dump(a)
######
<UESTC age="16" name="GZHermit" tag="gzh" />
ElementTree
ElementTree
表现的是整个xml的树结构,可以用于初始化一棵树出来用来生成一个新的xml文件,也可以以树的形式来加载一个已有的xml文件。
parse(source, parser=None):加载一个xml文