Quiero extraer el contenido del cuerpo de una página html junto con los tagNames de su hijo. Me he tomado un html ejemplo como este:php DOMDocument propiedad nodeName que devuelve '#text' con el nombre de nodo
<html>
<head></head>
<body>
<h1>This is H1 tag</h1>
<h2>This is H2 tag</h2>
<h3>This is H3 tag</h3>
</body>
</html>
He implementado el código php, como a continuación y su funcionamiento muy bien.
$d=new DOMDocument();
$d->loadHTMLFile('file.html');
$l=$d->childNodes->item(1)->childNodes->item(1)->childNodes;
for($i=0;$i<$l->length;$i++)
{
echo "<".$l->item($i)->nodeName.">".$l->item($i)->nodeValue."</".$l->item($i)->nodeName.">";
}
Este código está funcionando perfectamente bien, pero cuando traté de hacerlo mediante bucle foreach en lugar de para el lazo, la propiedad nombreNodo regresaba '#text' con cada nombreNodo real. aquí es que el código
$l=$d->childNodes->item(1)->childNodes->item(1)->childNodes;
foreach ($l as $li) {
echo $li->childNodes->item(0)->nodeName."<br/>";
}
¿Por qué?
Descubierto que puede resolver la familia DOM próxima pelea entre hermanos con nextElementSibling! ¡Maldito seas! Y – Leo