我不明白为什么这个测试
count(.|../@*)=count(../@*)
Run Code Online (Sandbox Code Playgroud)
(来自Dave Pawson的主页)
识别属性节点:(
有人能给我一个详细解释吗?
有几点需要了解:
. 指当前节点(又名"上下文节点")|)从不复制节点,即(.|.)导致一个节点而不是两个节点self::理论上你可以使用(如轴self::*工程,以找出是否一个节点是一个元素),但self::@*不工作,所以我们必须用不同的东西知道了,你可以说:
../@* 获取当前节点的父级的所有属性(所有"兄弟属性",如果您愿意)(.|../@*) 将当前节点与它们联合起来 - 如果当前节点是属性,则总计数不会改变(按照上面的#3)count(.|../@*)等于count(../@*),则当前节点必须是属性节点.