what // in xslt? e.g. ($currentPage//node)
That looks like it's part of XPath, which can be used within XSLT to search the tree for given nodes matching a path. It's a similar technology to CSS selectors.
The double slash does a descendant search at any depth.
For example:
elementa//elementb
would match any elementb element which is a descendent of an elementa element, even if there are other levels in between, eg:
<elementa>
<someelement>
<elementb>
</elementb>
</someelement>
</elementa>
what // in xslt? e.g. ($currentPage//node)
In XPath the abbreviation:
The value of some attributes of xslt instructions (such as the select attribute) must be an XPath expression.
Therefore,
($currentPage//node)
stands for
($currentPage/descendant-or-self::node()/node)
This selects all elements named node that are children of nodes that are either contained in the variable $currentPage or are descendents of nodes that are contained in the variable $currentPage.
Do note that in the provided expression node() is a node-test (it selects all node types on the descendant-or-self:: axis, such as elements, text nodes, comments and processing-instructions.
On the other side, somePath/node is a shorthand for somePath/child::node and only selects elements named node that are children of the context node.
I strongly recommend not to use the name node for an element in order to avoid this confusion.