优达学城数据分析师纳米学位——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 文檔,屬于暴力添加
?
轉載于:https://www.cnblogs.com/kong-xy/p/6388359.html
總結
以上是生活随笔為你收集整理的优达学城数据分析师纳米学位——P3项目知识点整理及代码分析 xml文件解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (OPC Client .NET 开发类
- 下一篇: AtCoder Beginner Con