简单地说:前导//表示与所选节点在同一文档中的"任何级别" .
从规格:
// para选择文档根的所有para后代,从而选择与上下文节点相同的文档中的所有para元素
.//para选择上下文节点的para元素后代
Jeff Yates.. 11
指定.//C
将实现您想要的,否则,XPath从文档根而不是当前节点开始.
的混乱是在定义//
从XPath标准如下:
//是/ descendant-or-self :: node()/的缩写.例如,// para是/ descendant-or-self :: node()/ child :: para的缩写,因此将选择文档中的任何para元素(甚至作为文档元素的para元素将由/选择)/para,因为document element节点是根节点的子节点); div // para是div/descendant-or-self :: node()/ child :: para的缩写,因此将选择div children的所有para后代.
因为它是文档级别的//
简称,/descendant-or-self::node()/
除非您在开始时指定一个节点.
简单地说:前导//表示与所选节点在同一文档中的"任何级别" .
从规格:
// para选择文档根的所有para后代,从而选择与上下文节点相同的文档中的所有para元素
.//para选择上下文节点的para元素后代
指定.//C
将实现您想要的,否则,XPath从文档根而不是当前节点开始.
的混乱是在定义//
从XPath标准如下:
//是/ descendant-or-self :: node()/的缩写.例如,// para是/ descendant-or-self :: node()/ child :: para的缩写,因此将选择文档中的任何para元素(甚至作为文档元素的para元素将由/选择)/para,因为document element节点是根节点的子节点); div // para是div/descendant-or-self :: node()/ child :: para的缩写,因此将选择div children的所有para后代.
因为它是文档级别的//
简称,/descendant-or-self::node()/
除非您在开始时指定一个节点.
//C
是整个文档中的所有C节点
/E//C
将只是E下的C节点
/C
将只是根C节点
请参阅xpath语法参考