1. A computer-implemented method for evaluating XPath expressions, comprising the steps of: (1) sending criteria from an XPath evaluation component to an XML event-streaming component; wherein the criteria is based at least upon a next unmatched step in an XPath expression; (2) streaming an XML event from the XML event-streaming component to the XPath evaluation component; wherein the XML event-streaming component determines the XML event based on the criteria; (3) matching the XML event to said next unmatched step in the XPath expression; (4) repeating steps 1-3 with respect to a new next unmatched step in the XPath expression, until it is determined that there are no remaining unmatched steps in the XPath expression; and (5) outputting an XPath result based at least upon the XML event streamed in the last iteration of step 2.