1. 程式人生 > >python獲取xml中的資料

python獲取xml中的資料

文章目錄

一、xml中節點包含的屬性:

  1. nodeName——節點名稱
  2. nodeValue——節點值
  3. nodeType——節點型別
    nodeType為1說明是元素節點,nodeType為2說明是屬性節點。

二、節點型別

  1. 元素節點
  2. 文字節點
  3. 屬性節點

三、python獲取xml節點:

例項1 列印根節點資訊

student.xml檔案

<?xml version="1.0" encoding="utf-8"?>
<student>
	<name>xiao</name>
	<age>15</age>
	<city>Beijing</city>
	<login username="stuname" password="123456"/>
</student>

程式碼:

from xml.dom import minidom
#1.匯入模組
dom=minidom.parse("E:\\pythontest\\test\\student.xml") #2.載入xml檔案
root=dom.documentElement       #3.獲取dom物件元素
print(root.nodeName)
print(root.nodeValue)
print(root.nodeType)

執行結果:
在這裡插入圖片描述
注意:檔案路徑需要用反斜槓轉義,否則會報錯,找不到檔案。

例項2 列印標籤對之間的資料

node.firstChild.data

需求:將班級中所有的姓名打印出來
student.xml檔案:

<?xml version="1.0" encoding="utf-8"?>
<class>
	<student>
		<name>孫悟空</name>
		<age>22</age>
	</student>
	<student>
		<name>豬八戒</name>
		<age>22</age>
	</student>
</class>

程式碼:

from xml.dom import minidom #匯入模組
dom=minidom.parse("e:\\pythontest\\test\\student.xml") #開啟xml
names=dom.getElementsByTagName("name") #獲取節點列表
for i in range(len(names)):
    print(names[i].firstChild.data)   #列印節點資料


執行結果:
在這裡插入圖片描述

例項3 列印節點屬性

node.getAttribute(屬性名)

需求:列印所有的賬號資訊
account.xml檔案

<?xml version="1.0" encoding="utf-8"?>
<account>
	<login username="user1" password="123456"/>
	<login username="user2" password="654321"/>
</account>

程式碼:

from xml.dom import minidom #匯入模組
dom=minidom.parse("e:\\pythontest\\test\\account.xml") #開啟xml
logins=dom.getElementsByTagName("login")  #獲取節點列表
for i in range(len(logins)):  #獲取節點屬性
    print(logins[i].getAttribute("username"),logins[i].getAttribute("password"))

執行結果:
在這裡插入圖片描述