I don't think using SAX is likely to solve your problem directly, but the reason it's not working for you is that you haven't installed a SAX parser. XML::SAX installs a base class for writing your own SAX filters and a framework for selecting a parser module using a ParserFactory class. It also installs a PurePerl XML parser which in addition to being slow, also requires Perl 5.8 to handle encodings. If you install XML::SAX::Expat, it will configure itself into the SAX ParserFactory framework as the default parser and it does support iso-8859-1 encoding.