1 回答
TA貢獻1815條經驗 獲得超10個贊
有!因此,讓我們看看a.getElementsByTagName如果它不包含您的目標元素,當您實際運行時會發生什么。
for a in auth:
print(a.getElementsByTagName("ForeName"))
>>
[]
[<DOM Element: ForeName at 0x163a17226d0>]
[<DOM Element: ForeName at 0x163a1722898>]
是的,現在我們知道如果你嘗試獲取一個它沒有的元素,它會返回一個空列表并且也與文檔對齊:
NodeList 表示節點序列。這些對象在 DOM Core 推薦中以兩種方式使用:一個 Element 對象提供一個作為其子節點列表,Node 的 getElementsByTagName() 和 getElementsByTagNameNS() 方法返回具有此接口的對象以表示查詢結果。
現在,您可以在打印數據之前明確檢查元素是否存在,而不是執行try和except循環:
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為空,則打印破折號。
添加回答
舉報
