+1  A: 

Try passing recover => 1 to XML::LibXML->new. It might help.

Docs from XML::LibXML::Parser...

   recover
       /parser, html, reader/

       recover from errors; possible values are 0, 1, and 2

       A true value turns on recovery mode which allows one to parse
       broken XML or HTML data. The recovery mode allows the parser to
       return the successfully parsed portion of the input document. This
       is useful for almost well-formed documents, where for example a
       closing tag is missing somewhere. Still, XML::LibXML will only
       parse until the first fatal (non-recoverable) error occurs,
       reporting recoverable parsing errors as warnings. To suppress even
       these warnings, use recover=>2.

       Note that validation is switched off automatically in recovery
       mode.
Schwern
Just tried that, I was put off my the "validation is switched off". The issue is I believe my errors are deemed non-recoverable, so it won't keep parsing
Paulo SantAnna
A: 
Paulo SantAnna