in reply to Unicode XML Parsing Problem

UNICODE is not an encoding, at least not on its own. It assigns numbers to characters, but it doesn't dictate how those numbers are represented as bytes. Encodings UTF-8, UTF-16, etc provide this missing information. You'll need to fix the header with the proper encoding. If the file actually uses the UTF-8 enconding you could do use something like the following to fix the file:

$xml =~ s/encoding="(?i:UNICODE)"/encoding="UTF-8"/;