注意:本文为 xml.etree.ElementTree 学习笔记,仅供自己学习使用,文中会把引用的链接附上。
前言
一、ElementTree 和 Element
XML是一种固定的分层数据格式,它最自然的表示方式是树。XML有两个类——ElementTree将整个XML文档表示为树,而Element表示树中的单个节点。一般这样调用:import xml.etree.ElementTree as ET(简称ET)。
1.与整个文档的交互(读写文件)通常是在ElementTree级别完成的(文件的读写)。
2.与单个XML元素及其子元素的交互是在Element级完成的。
Element是一个灵活的容器对象,设计用来在内存中存储分层数据结构。它可以被描述为一种介于列表和字典之间的东西。每个Element都有许多与之关联的属性,如下:
属性 | 类型 | 意义 | 调用 |
---|---|---|---|
tag | str | Element名 | Element.tag |
attrib | dic | 元素有哪些属性 | Element.attrib |
text | str | 第一个子元素之前的文本。 | Element.text |
tail | str | 在元素结束标记之后,下一个元素开始标记之前的文本。 | Element.tail |
二、XML解析
1.我们将使用以下XML文档作为示例数据:
<Annotation created="16/05/2018" creator="XMLconverter">
<DocumentSet>
<document id="ED0" document_level_value="CT+">
<sentence id="ES0.0">China issues stern <event id="EE0.0" sentence_level_value="CT+">rebuke</event> over flight -EOP- .</sentence>
<sentence id="ES0.3">Surveillance aircraft intercepted by 2 J_10 fighter jets over East China Sea -EOP- .</sentence>
<sentence id="ES0.4">China urged the United States to immediately <event id="EE0.1" sentence_level_value