protected function createXMLReader()
{
$xml = parent::createXMLReader();
$needsRewind = false;
while ($xml->read()) {
if (\XMLReader::END_ELEMENT === $xml->nodeType && 'numFmts' === $xml->name) {
break;
} elseif (\XMLReader::ELEMENT === $xml->nodeType) {
switch ($xml->name) {
case 'numFmt':
$this->numberFormats[$xml->getAttribute('numFmtId')] = preg_match('{^(\\[\\$[[:alpha:]]*-[0-9A-F]*\\])*[hmsdy]}i', $xml->getAttribute('formatCode')) ? static::FORMAT_DATE : static::FORMAT_DEFAULT;
break;
case 'cellXfs':
$needsRewind = true;
break;
}
}
}
if ($needsRewind) {
$xml->close();
$xml = parent::createXMLReader();
}
return $xml;
}