Compare transient data with a meta box value

I would do the following:

  1. Create WP-Cron task (or just use daily wp_scheduled_delete one to tag along) and hook your function to it.
  2. In that function:

    • fetch XML file;
    • fetch all posts with meta_weight set, using get_posts();
    • loop through posts and save comparison result in another meta field for each.