$hash := hash expression expression


This command takes two arguments: an expression computing a key from a given node (1st argument) and a node-set (2nd argument). For each node in the node-set, the key value is computed and the node is stored under the given key in the resulting hash. For a given key, the value stored in the hash table is a node-list consisting of all nodes for which the 1st expression evaluated to an object string-wise equal to the key. It is therefore possible to index more than one node under the same key.

The XPath function xsh:lookup(varname,key) can be used to retrieve values from hashes in XPath expressions.

Example 32. Index books by author

my $books_by_author := hash concat(author/firstname," ",author/surname) //book;

Example 33. Lookup books by Jack London.

ls { $books_by_author->{'Jack London'} };
ls xsh:lookup('books_by_author','Jack London');

See Also