Personally, I use XML::Twig for all things XML. It may be overkill for small things, but when you have a swiss army knife as your tool, well, all things look like something to cut, slice, uncork, hammer, screw, magnify, eat with a spoon, a fork, ... ;-)
However, it does sound like XML::Simple may be a simpler choice for you - you probably want to Super Search for XML::Simple to see the types of problems that XML::Simple doesn't solve so you can evaluate for yourself prior to actually using it. Off the top of my head, if your doc has both attributes and content for the same element, saving your doc back out may lose the distinction. There may be ways around that, but a Super Search would likely prove helpful to do it right up front.