XSH supports arbitrary XPath expression as defined in W3C recommendation at http://www.w3.org/TR/xpath. (Nice interactive XPath tutorials and references can be found at http://www.zvon.org.) In XSH, XPath expressoin may be optionally preceded with a document identifier followed by colon (id:xpath). If no document identifier is given, the current document is used.
As an extension, the following XPath extension functions are defined in the XSH namespace:
xsh:doc(id-string) - returns a nodelist consisting of the document node associated in XSH with an identifier given in id-string.
xsh:matches(match-string,regexp-string) - returns true if match-string matches the regular expression given in regexp-string. Otherwise returns false.
xsh:grep(node-set, regexp-string) - returns a node set consisting of nodes of the given node-set whose content (as returned by the built-in XPath function string()) matches the regular expression given in regexp-string.
xsh:same(node-set1, node-set2) - returns true if the given node sets both contain the same node (in XPath, this can also be expressed as count(node-set1|node-set2)+count(node-set1)+count(node-set2)=1).