使用python操作XML增刪改查


使用python操作XML增刪改查

什么是XML?

  • XML 指可擴展標記語言(EXtensible Markup Language)
  • XML 是一種標記語言,很類似 HTML
  • XML 的設計宗旨是傳輸數據,而非顯示數據
  • XML 標簽沒有被預定義。您需要自行定義標簽。
  • XML 被設計為具有自我描述性。
  • XML 是 W3C 的推薦標准

參考文獻

官方文檔

導入模塊

import xml.etree.ElementTree as ET

讀取解析XML

可以從xml文件、字符串中解析
新建一個xml文件

	<?xml version="1.0" encoding="UTF-8"?>
	<students>
		<student>
			<name>張三</name>
			<age>18</age>
			<score>89</score>
		</student>
		<student>
			<name>李四</name>
			<age>19</age>
			<score>81</score>
		</student>
		<student>
			<name>王五</name>
			<age>17</age>
			<score>92</score>
		</student>
	</students>

從xml文件中讀取,使用getroot()獲取根節點,得到的是一個Element對象

tree = ET.parse('students.xml')
root = tree.getroot()

從字符串變量中讀取,返回的是Element對象

root = ET.fromstring(country_data_as_string)

訪問XML

每個Element都有以下屬性

    #tag = element.text #訪問Element標簽
    #attrib = element.attrib #訪問Element屬性
    #text = element.text #訪問Element文本

	for element in root.findall('student'):
	    tag = element.tag #訪問Element標簽
	    attrib = element.attrib #訪問Element屬性
	    text = element.find('name').text #訪問Element文本
	    print(tag, attrib, text)

	 print(root[0][0].text) #子節點是嵌套的,我們可以通關索引訪問特定的子節點

查找元素

Element 提供了一些方法來幫助我們對他的子節點進行遍歷

1、Element.iter()

	for student in root.iter('student'):
	    print student[0].text
	out:
	張三
	李四
	王五

2、Element.findall()

	for element in root.findall('student'):
	    name = element.find('name').text
	    age = element.find('age').text
	    score = element.find('score').text
	    print name,age,score
	out:
	張三 18 89
	李四 19 81
	王五 17 92

修改XML

  • ElementTree.write()將構建的XML文檔寫入文件。
  • Element.text = '' 直接改變字段內容
  • Element.append(Element) 為當前的Elment對象添加子對象
  • Element.remove(Element) 刪除Element節點
  • Element.set(key, value) 添加和修改屬性
  • ElementTree.write('filename.xml') 寫出(更新)XMl文件

創建XML

  • ElementTree.Element() 構建一個節點
  • ElementTree.SubElement(Element,tag) 構建一個子節點
	a = ET.Element('a')  
	b = ET.SubElement(a, 'b')  
	c = ET.SubElement(a, 'c')  
	print ET.dump(a)  
	out:
	&lt;a>&lt;b />&lt;c />&lt;/a>

總結

最近寫東西需要都輸出xml,所以學習了XML以及XML在python的使用。更多內容可以看官方文檔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM