I'm still playing with this hash used in the first method (below).
req.open("GET", "xmlprovider.php?hash=" + Math.random());

The third method (shown below) I tested and it still grabbed the old copy of the file.
req.open("GET", "xmlprovider.php");
req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
req.send(null);

As for attempting to write a modified UDF. I think thats a bit out of my skill range. I'm not familar enough with XMLHTTP.