If this is the real XML its not properly formated the field tag is incorrect.
Anyway I use XML::Simple for a job like this. I read the XML in like so.
$hash = XMLin($file);
Then I mess around picking out the keys and values I need into a second hash then I use
$txt = XMLout(%hash2)
to get the new XML. Works for me but I'm interesred in better ways of doing this as I'm working on a project now which does something similer.