I might be able to due the shallow parsing method. It's somewhat small enough for me to retype. (Did I mention I'm on an isolated system?) XML::Parser::Lite is way too much for me to retype and requires other modules.
From the list, you can find the first occurrence of RemoteHost, then find the hostname, synopsis and other elements you want and extract their values. Then find the /RemoteHost element, then find the next RemoteHost element, find and extract the subelement, finally, repeat until end of file reached.
Don't suppose you could give me a quick example on how do that with ShallowParse?