/**
* Returns the selected nodes.
*/
public static NodeListResult selectNodes(XML context, String xpath, boolean remove_successors) {
try {
ElementWrapper root = makeRoot(context);
List<?> selected = prepare(xpath, root).selectNodes(root.getFirstChild()); // apparently, jaxen doesn't use deep recursive calls
List<Node> sel = copyNodes(root, selected, remove_successors);
return new NodeListResult(getRealFirstChild(root), sel);
} catch (JaxenException e) {
throw new XMLXPathException(e);
} catch (JaxenRuntimeException e) {