def _node_filter(self, node, ancestors, filtrates):
if node in filtrates:<EOL><INDENT>return<EOL><DEDENT>elif node in ancestors:<EOL><INDENT>if node.tag != config_tag:<EOL><INDENT>s_node = self.get_schema_node(node)<EOL><DEDENT>if node.tag != config_tag ands_node.get('<STR_LIT:type>') == '<STR_LIT:list>':<EOL><INDENT>for child in node.getchildren():<EOL><INDENT>s_node = self.get_schema_node(child)<EOL>if s_node.get('<STR_LIT>') or child in filtrates:<EOL><INDENT>continue<EOL><DEDENT>elif child in ancestors:<EOL><INDENT>self._node_filter(child, ancestors, filtrates)<EOL><DEDENT>else:<EOL><INDENT>node.remove(child)<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>for child in node.getchildren():<EOL><INDENT>if child in filtrates:<EOL><INDENT>continue<EOL><DEDENT>elif child in ancestors:<EOL><INDENT>self._node_filter(child, ancestors, filtrates)<EOL><DEDENT>else:<EOL><INDENT>node.remove(child)<EOL><DEDENT><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>node.getparent().remove(node)<EOL><DEDENT>
_node_filter

        Low-level api: Remove unrelated nodes in config. This is a recursive
        method.

        Parameters
        ----------

        node : `Element`
            A node to be processed.

        ancestors : `list`
            A list of ancestors of filtrates.

        filtrates : `list`
            A list of filtrates which are result of xpath evaluation.

        Returns
        -------

        None
            There is no return of this method.