La extensión XMLReader es un analizador XML de tipo Pull. El lector actúa como un cursor que avanza en el flujo del documento y se detiene en cada nodo a su paso.
Es importante destacar que, internamente, libxml utiliza la codificación UTF-8 y, como tal, la codificación de los contenidos recuperados siempre estará en codificación UTF-8.
Allright, I'll do it myself:
$xmlreader = XMLReader::open('xml_file.xml');
$indent = 0;
while ($xmlreader->read() !== FALSE)
{
switch ($xmlreader->nodeType)
{
case XMLReader::ELEMENT:
echo str_repeat("\t", ($xmlreader->isEmptyElement ? $indent : $indent++)), '[element]: ', $xmlreader->name, "\n";
break;
case XMLReader::TEXT:
echo str_repeat("\t", $indent), $xmlreader->value, "\n";
break;
case XMLReader::END_ELEMENT:
echo str_repeat("\t", --$indent), '[end element]: ', $xmlreader->name, "\n";
break;
}
}