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为空,则打印破折号。
添加回答
举报