Looks easy enough; a regular expression for [man]preg_match_all/man would get the node names and their contents:
/<(.*?)>(.*?)</
with the two bits matched going into an array.
The second bit to create the variable from the first bit and give it the value from the second bit is easy: the entire line (assuming the array of (arrays of) matches is called $m) is:
${$m[1][$i]}=$m[2][$i];
, where $i is being used to loop through all the matches from the XML page.
From what I see of the format, that would be it.