1 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
有!因此,讓我們看看a.getElementsByTagName如果它不包含您的目標(biāo)元素,當(dāng)您實(shí)際運(yùn)行時(shí)會(huì)發(fā)生什么。
for a in auth:
print(a.getElementsByTagName("ForeName"))
>>
[]
[<DOM Element: ForeName at 0x163a17226d0>]
[<DOM Element: ForeName at 0x163a1722898>]
是的,現(xiàn)在我們知道如果你嘗試獲取一個(gè)它沒(méi)有的元素,它會(huì)返回一個(gè)空列表并且也與文檔對(duì)齊:
NodeList 表示節(jié)點(diǎn)序列。這些對(duì)象在 DOM Core 推薦中以兩種方式使用:一個(gè) Element 對(duì)象提供一個(gè)作為其子節(jié)點(diǎn)列表,Node 的 getElementsByTagName() 和 getElementsByTagNameNS() 方法返回具有此接口的對(duì)象以表示查詢結(jié)果。
現(xiàn)在,您可以在打印數(shù)據(jù)之前明確檢查元素是否存在,而不是執(zhí)行try和except循環(huán):
for a in auth:
if a.getElementsByTagName("ForeName"):
print("FirstName : ",a.getElementsByTagName("ForeName")[0].firstChild.data)
else:
print("FirstName : - ")
>>
FirstName : -
FirstName : ghi
FirstName : mno
這里if塊檢查它是否不為空,然后打印。如果NodeList為空,則打印破折號(hào)。
添加回答
舉報(bào)