python獲取xml中的資料
阿新 • • 發佈:2018-12-22
文章目錄
一、xml中節點包含的屬性:
- nodeName——節點名稱
- nodeValue——節點值
- nodeType——節點型別
nodeType為1說明是元素節點,nodeType為2說明是屬性節點。
二、節點型別
- 元素節點
- 文字節點
- 屬性節點
三、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"))
執行結果: