Evaluates xpath on e and returns the result set for this evaluation,
which is a list of XML subexpressions or (end-)values. If the expression
doesn't compute, the empty list is returned. If no elements are found,
also the empty list is returned.

This function can't handle values for intermediate nodes yet!

precondition:xpath must be a valid XPath and white space must
have been removed from xexpr using xexpr-remove-whitespace.

If intermediate-node is #f, this is and end node in the XML tree, otherwise,
this node contains other nodes. level gives the current depth in the
XML tree, 0 being the top level.

element

is a symbol giving the element name of the current node.

attributes

is a list of attributes (attribute-name:symbol value:string)).

value

is a string containing the value of the current node (works also for intermediate nodes).

xexprs

is '(), if this is an end node. It is a list of all next level nodes, otherwise.

Return value of callback: if #f, xexpr-sax will not go depth first.
if #t, xexpr-sax will go depth first. This makes it possible to call
the sax parser again with a different callback function on deeper level nodes.

The basic behaviour of xexpr-sax is O(xml-tags) (it traverses all xml-tags of
an XML document twice) (first pass assembling the value of a node and the next level nodes
of that node; second pass traversing the next level nodes).