def _empty_except_predicates(xast, node, context):
<EOL>node_c = deepcopy(node)<EOL>_remove_predicates(xast, node_c, context)<EOL>return bool(len(node_c) == <NUM_LIT:0> and len(node_c.attrib) == <NUM_LIT:0>)<EOL>
Check if a node is empty (no child nodes or attributes) except
    for any predicates defined in the specified xpath.

    :param xast: parsed xpath (xpath abstract syntax tree) from
        :mod:`eulxml.xpath`
    :param node: lxml element to check
    :param context: any context required for the xpath (e.g.,
        namespace definitions)

    :returns: boolean indicating if the element is empty or not