我需要一些幫助來進行迭代。我在XML中的根是sdnEntry。如果我在文檔中沒有任何迭代使用[0],我可以從中檢索文本值,但是當我在循環中收到像「last_names = sdns.getElementsByTagName(」lastName「).ErrorError:'NodeList '對象有沒有屬性 '的getElementsByTagName'」Python for Loop
我的工作代碼 - wihout任何迭代看起來是這樣的:
from xml.dom import minidom
xmldoc = minidom.parse("/Users/cohen/Documents/project/sdn.xml")
sdns = xmldoc.getElementsByTagName("sdnEntry")[0]
last_names = sdns.getElementsByTagName("lastName")[0]
ln = last_names.firstChild.data
types = sdns.getElementsByTagName("sdnType")[0]
t = types.firstChild.data
programs = sdns.getElementsByTagName("programList")[0] #program.firstChild.data
s = programs.getElementsByTagName("program")[0].firstChild.data
akas = sdns.getElementsByTagName("akaList")[0] #child lastName.fourthChild.data
a = akas.getElementsByTagName("aka")[0]
a1 = a.getElementsByTagName("lastName")[0].firstChild.data
addresses = sdns.getElementsByTagName("addressList")[0]
ad1 = addresses.getElementsByTagName("address")[0]
ad2 = ad1.getElementsByTagName("city")[0]
city= ad2.firstChild.data
ad3 = ad1.getElementsByTagName("country")[0]
country = ad3.firstChild.data
這是怎麼看起來像我的XML:
<sdnEntry>
<uid>36</uid>
<lastName>AEROCARIBBEAN AIRLINES</lastName>
<sdnType>Entity</sdnType>
<programList>
<program>CUBA</program>
</programList>
<akaList>
<aka>
<uid>12</uid>
<type>a.k.a.</type>
<category>strong</category>
<lastName>AERO-CARIBBEAN</lastName>
</aka>
</akaList>
<addressList>
<address>
<uid>25</uid>
<city>Havana</city>
<country>Cuba</country>
</address>
</addressList>
</sdnEntry>
下面是我的循環。 請指教。先謝謝你!
for sdn in sdns:
for ln in last_names:
print(ln)
for t in types:
print(t)
for program in programs:
print (s)
for aka in akas:
print(a1)
for address in addresses:
print(city)
print(country)
我需要每個sdnEntry
存儲在我的數據庫,所以我需要爲每個條目只知道
<name> (lastName AEROCARIBBEAN AIRLINES)
,<sdnType>
(實體)`,- 來自程序列表的
<programs>
例如(CUBA程序),但他們可以更多, <aka><lastName>
(AERO-加勒比)全部<address>
的所有的人(哈瓦那市國家古巴)
我怎麼能這樣做?
謝謝你的回答!這是一個進步。我需要將每個sdnEntry存儲在我的數據庫中,因此我需要每個條目只知道名稱(lastName AEROCARIBBEAN AIRLINES),(sdnType Entity),程序列表中的程序例如(方案古巴),但他們可以更多,所有的akas(姓氏AERO-CARIBBEAN)和所有地址(城市哈瓦那 國家古巴)我怎麼能做到這一點?謝謝迪克! – Cohen
更新的代碼,它可以很容易地修改,以刪除不需要的項目 – diek
上述邏輯應該工作,它是爲一個條目完成的。每完成一次輸入後,將索引重置爲0 – diek