getElementsByTagName() 相当于 TextNodes
问题:
是否有类似于getElementsByTagName() 检索所有 textNode 的集合
讨论:
getElementsByTagName() 可以有效地收集元素,但它不能扩展到 textNode。虽然遍历 DOM 是一个可行的选择,但这个问题探讨了基于本机浏览器的解决方案的可能性。
答案:
目前没有与 getElementsByTagName 直接等效的方法() 用于文本节点。但是,还有几种替代方法:
性能测试:
性能测试表明 TreeWalker 的性能与 getElementsByTagName( 如果不是更好的话) 一样好)。自定义迭代遍历也表现出了良好的性能。虽然 XPath 和 querySelectorAll 给出了令人满意的结果,但递归遍历由于其更深的递归而落后。
其他见解:
即使存在收集文本节点的本机方法,您仍然需要遍历并从每个节点提取实际的文本内容。因此,性能瓶颈不仅在于迭代文本节点,还在于检查非文本节点以确定其类型。
以上是是否有等效的 getElementsByTagName() 用于检索文档中的所有 TextNode?的详细内容。更多信息请关注PHP中文网其他相关文章!