【python】處理xml文件——dom
阿新 • • 發佈:2019-03-14
enc print dom tel rst 對象類型 nts www. odi
參考
【1】【2】【3】
【嘗試】
【參考第【3】個博客】
【原版代碼】
#coding=utf-8 #通過minidom解析xml文件 import xml.dom.minidom as xmldom import os ‘‘‘ XML文件讀取 <?xml version="1.0" encoding="utf-8"?> <catalog> <maxid>4</maxid> <login username="pytest" passwd=‘123456‘>dasdas <caption>Python</caption> <item id="4"> <caption>測試</caption> </item> </login> <item id="2"> <caption>Zope</caption> </item> </catalog>‘‘‘ xmlfilepath = os.path.abspath("test.xml") print ("xml文件路徑:", xmlfilepath) # 得到文檔對象 domobj = xmldom.parse(xmlfilepath) print("xmldom.parse:", type(domobj)) # 得到元素對象 elementobj = domobj.documentElement print ("domobj.documentElement:", type(elementobj)) #獲得子標簽 subElementObj = elementobj.getElementsByTagName("login") print ("getElementsByTagName:", type(subElementObj)) print (len(subElementObj)) # 獲得標簽屬性值 print (subElementObj[0].getAttribute("username")) print (subElementObj[0].getAttribute("passwd")) #區分相同標簽名的標簽 subElementObj1 = elementobj.getElementsByTagName("caption") for i in range(len(subElementObj1)):print ("subElementObj1[i]:", type(subElementObj1[i])) print (subElementObj1[i].firstChild.data) #顯示標簽對之間的數據
報錯了,貌似是因為我的python版本低的緣故?兩個問題:
(1)一個是print那裏的括號問題。
(2)一個是type()函數取得對象類型名時,都只顯示<type ‘instance‘>而不是更為具體詳細的類型名。
所以,改動一下。
【改動後】
#coding=utf-8 #通過minidom解析xml文件 import xml.dom.minidom as xmldom import os ‘‘‘ XML文件讀取 <?xml version="1.0" encoding="utf-8"?> <catalog> <maxid>4</maxid> <login username="pytest" passwd=‘123456‘>dasdas <caption>Python</caption> <item id="4"> <caption>測試</caption> </item> </login> <item id="2"> <caption>Zope</caption> </item> </catalog> ‘‘‘ xmlfilepath = os.path.abspath("test_g2.xml") print "xml文件路徑:", xmlfilepath # 得到文檔對象 domobj = xmldom.parse(xmlfilepath) print "xmldom.parse:", type(domobj) print "xmldom.parse:", domobj.__class__ # 得到元素對象 elementobj = domobj.documentElement print "domobj.documentElement:", type(elementobj) print "domobj.documentElement:", elementobj.__class__ #獲得子標簽 subElementObj = elementobj.getElementsByTagName("login") print "getElementsByTagName:", type(subElementObj) print len(subElementObj) # 獲得標簽屬性值 print subElementObj[0].getAttribute("username") print subElementObj[0].getAttribute("passwd") #區分相同標簽名的標簽 subElementObj1 = elementobj.getElementsByTagName("caption") for i in range(len(subElementObj1)): print "subElementObj1[i]:", type(subElementObj1[i]) print subElementObj1[i].firstChild.data #顯示標簽對之間的數據
待補充
【python】處理xml文件——dom