getElementsByTagName 返回零而不是 null 为啥
Posted
技术标签:
【中文标题】getElementsByTagName 返回零而不是 null 为啥【英文标题】:getElementsByTagName Returns zero not null whygetElementsByTagName 返回零而不是 null 为什么 【发布时间】:2021-09-13 21:38:39 【问题描述】:NodeList myNodes = myDoc.getElementsByTagName("dne");
myDoc 中不存在元素“dne”。
然而,myNodes 不是 null,为什么?如果 dne 不在 myDoc 中,则 myNodes 应为 null。我错过了什么?
【问题讨论】:
为什么您期望返回null
而不是空的NodeList
?
我猜几乎所有语言/框架的行为都是相似的:函数应该返回对象,但没有找到它 --> null。函数应该返回列表但什么也没找到——>空列表。某些语言/框架可能提供Optional 功能
【参考方案1】:
myNodes 应该为空。
为什么? https://docs.oracle.com/javase/7/docs/api/org/w3c/dom/Element.html#getElementsByTagName(java.lang.String)
返回:匹配元素节点的列表。
如果列表为空,它不会返回 null。它只是返回一个空列表。如果长度为 0,则说明没有匹配的节点。
【讨论】:
以上是关于getElementsByTagName 返回零而不是 null 为啥的主要内容,如果未能解决你的问题,请参考以下文章