I have a script that does just this but the dates are hard coded rather than stored in an XML file.
I call this script as a subflow as shown below.
If basically uses D(now) to write the date to a variable then uses multiple If statements to check whether the date falls within a range.
I originally wrote this because the customer wanted specific holiday messages - e.g Easter 2013 - rather than generic ones.
I guess you could use the techniques above in conjunction with the XML logic in the script you posted to get an XML driven solution.
Hope this helps