优达学城数据分析师纳米学位——P3项目知识点整理及代码分析 xml文件解析

The ElementTree XML API

 在廖雪峰的博客中提到:

start_element  char_data  end_element 的处理思路,关注起始点,数据内容,终止点。

 

操作XML有两种方法:DOM和SAX。DOM会把整个XML读入内存,解析为树,因此占用内存大,解析慢,优点是可以任意遍历树的节点。SAX是流模式,边读边解析,占用内存小,解析快,缺点是我们需要自己处理事件。

正常情况下,优先考虑SAX,因为DOM实在太占内存。

element 是一种数据类型,介于List 类型和 Dictionary 类型之间,可以包含 一个tag 标签来表示数据实际的含义,几个属性,一个text string 来显示属性,optionla tail string尾注,几个孩子元素(child elements)

 

1.1 XML tree and Elements 

XML is an inherently hierarchiacal data format, 树形结构存储相关数据,文件操作多为element tree 级别的变化,结点的变动多为element 级别的变化

 

2. Parse XML 

     多种数据导入方法

root.tag  root.attribut  root.text 可以直接查看相关数据

for child in root:
    print child.tag, child.attrib

 同时可以通过索引来查看孩子元素的相关数据, 例如:root[0][1].text

 

3.找到某一个元素

method: iter(), findall(), find(), get(),

Element.iter()遍历所有的相关数据(包括孩子元素及孩子元素的孩子元素) 

Element.findall() 找所有直系的孩子元素(direct children of the current element)

Element.find() 只找第一个孩子元素 first child

Element.get() 可以access 数据的属性

 

4.修改XML文件

Element.write() 可以 build XML documents and write them to files

attibutes 可以通过Element.set()修改  

添加新的 child element 可以通过 Element.append()命令

移除某一个element, 可以通过Element.remove() 命令,同时可以利用if 语句作为筛选条件, 同时注意int() 命令进行数据类型的转换。

 

实现 rank text 分别+1, 增添新属性 updated: yes, 生成新文件 output.xml

 

5. 通过ET.Element 命令来创建新的XML 文档,属于暴力添加

 

posted @ 2017-02-10 23:04  AugusKong  阅读(435)  评论(0编辑  收藏  举报