xmlNodePtr match =  NULL; xmlNodePtr lastMatch = root;
crm_data_t *match =  NULL; crm_data_t *lastMatch = root;
find_xml_node_nested(xmlNodePtr root, const char **search_path, int len){	int	j;	gboolean is_found = TRUE;	xmlNodePtr match =  NULL;	xmlNodePtr lastMatch = root;		if(search_path == NULL || search_path[0] == NULL) {		crm_warn("Will never find NULL");		return NULL;	}		dump_array(LOG_INSANE, "Looking for.", search_path, len);	for (j=0; j < len; ++j) {		if (search_path[j] == NULL) {/* a NULL also means stop searching */			break;		}		match = find_xml_node(lastMatch, search_path[j], FALSE);		if(match == NULL) {			is_found = FALSE;			break;		} else {			lastMatch = match;		}	}	if (is_found) {		crm_insane("returning node (%s).",			   xmlGetNodePath(lastMatch));		crm_insane("found\t%s", dump_xml_formatted(lastMatch));		crm_insane("in \t%s", dump_xml_formatted(root));				return lastMatch;	}	dump_array(LOG_WARNING,		   "Could not find the full path to the node you specified.",		   search_path, len);	crm_warn("Closest point was node (%s) starting from %s.",	       xmlGetNodePath(lastMatch), root?root->name:NULL);	return NULL;    }