There was a bug I found where the parser would not properly close the hierarchy if there was a non self closing empty array "<array></array>".
The fix was in two places, one where the file is first accessed.
Added a preg_replace on the XML data before parsing that replaces non self closing empty array elements with self closing elements.
The second is in the parsing of the array element. Test for empty array element if found gracefully skip it.