我实施了 lookupNamespace
但当我查找一个不存在的命名空间时,它一直出错,因为调用栈已满。这个算法的伪代码可以在这里找到。规格.
它之所以会递归地调用自己,是因为它在搜索命名空间时遍历了dom树,当它碰到文档节点时,调用会被中继到documentElement--然后从那里再次遍历到文档(关闭圈)。
那么,是我遗漏了什么明显的东西,还是伪代码出错了?
没有理由它会回到 document
可能你又错过了 documentElement
是一个 Element
?
prefix
因此,它将返回该命名空间。xmlns:prefix
匹配的属性 prefix
然后它将返回该属性的值。prefix
是 null
而该元素有一个 xmlns
属性,则返回该属性的值。null
,因为它没有祖先元素。