一.ElmentTree的层次结构
1.顶层——ElmentTree
ElementTree是最顶层的结构,一般整个xml文档被当作一棵ElementTree。即上图所示的整个文档被解析为一棵ElementTree。
2.中层——Element
包含树中的根节点和众多孩子节点。如图中的<annotation>,<filename>,<source>等。访问节点和节点所属的sub-element都是在这个层级上进行的。
3.底层——subelment
有 tag, attrib和text三种,如上图所示。
二.树状结构
import xml.etree.ElementTree as ET
把xml.etree.ElementTree记作ET
1.构建ElementTree
使用tree=ET.parse('路径名.xml')
语句,把目标xml文件解析成一棵ElementTree。
这里有两点需要注意:
-
这里的路径使用斜杠,而不是使用反斜杠。 Windows用户应特别注意,直接从地址栏复制的地址是反斜杠,需要手动改写。以下是一个C:/Users/Administrator/Desktop/000005.xml。
-
路径应该用单引号或者双引号括起来,否则会报错。
2.找到根节点
这一步很重要,后续所有的访问几乎都基于根节点。就像数据结构中的树,所有的节点都可以由根节点出发找到。
使用root=tree.getroot()
语句,找到tree的根节点,并将节点返回给root变量。
三.访问节点
<annotation a='123' b='222'>
111111this is text.
<folder>VOC2007</folder>
<filename>000005.jpg</filename>
<source>
<database>The VOC2007 Database</database>
<annotation>PASCAL VOC2007</annotation>
<image>flickr</image>