似乎在某些用例中使用表达式
//*[local-name()='element']
选择
以上//*:element
换句话说,第一个表达式在更一般的层面上起作用,而第二个表达式似乎更具限制性。
这可能是什么原因?它似乎是一个命名空间问题,但我们无法弄明白。
答案 0 :(得分:2)
node test *:element
仅在XPath 2.0中有效。规范说:
节点测试也可以采用*:NCName形式。在这种情况下,对于本地名称与给定NCName匹配的步轴的主节点类型的任何节点,节点测试都为true,无论其名称空间或缺少名称空间。
所以它等同于*[local-name()='element']
。