So after a few hours, I think I found the problem. However I do not have an elegant solution yet.
Either the ZeenDoc aps package returns an invalid answer from the apscatalog or aps_crawler.inc.php does not process this case properly.
As a result, the variable $xml ends up containing the value "<" which is in turn used to initiate an XML document using the SimpleXMLElement function call, throwing an exception.
Alltough it is not a long term solution, I added && strcmp($apps[$j],'<') to the for loop of line 271 so this package is skipped.
Here the code snippet from line 269:
// Before parsing, make sure it's worth the work by checking if at least one app exists
$apps_count = substr_count($apps[$j], '<opensearch:totalResults>0</opensearch:totalResults>');
if($apps_count == 0 && strcmp($apps[$j],'<')) // obviously this vendor provides one or more apps
// Rename namespaces and register them
$xml = str_replace("xmlns=", "ns=", $apps[$j]);
$sxe = new SimpleXMLElement($xml);
I do not think $app_count is ever going to return anything different than 0. There is some work to do there.
WARNING : I am not a programmer and do not pretend this solution is safe to use.
However, I hope this helps.