/**
* Fetch the nodes for the provided context node. If $context
* ist NULL the document context is used.
*
* @throws \InvalidArgumentException
* @param string $expression
* @param \DOMNode $context
* @param int $options
* @return array|bool|\DOMNodeList|float|string
*/
private function fetchNodes($expression, \DOMNode $context = NULL, $options = 0)
{
$nodes = $this->_nodes->xpath($expression, $context);
if (!$nodes instanceof \DOMNodeList) {
throw new \InvalidArgumentException('Given selector/expression did not return a node list.');
}
$nodes = iterator_to_array($nodes);
if (Constraints::hasOption($options, self::REVERSE)) {
return array_reverse($nodes, FALSE);
}
return $nodes;
}