Я хочу извлечь содержимое тела html-страницы вместе с tagNames ее дочернего элемента.Я взял пример HTML, как это:
<html>
<head></head>
<body>
<h1>This is H1 tag</h1>
<h2>This is H2 tag</h2>
<h3>This is H3 tag</h3>
</body>
</html>
Я реализовал код php, как показано ниже, и он работает нормально.
$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.">";
}
Этот код работает отлично, но когда япопытался сделать это, используя цикл foreach вместо цикла for, свойство nodeName возвращало '#text' с каждым фактическим именем узла.Вот этот код
$l=$d->childNodes->item(1)->childNodes->item(1)->childNodes;
foreach ($l as $li) {
echo $li->childNodes->item(0)->nodeName."<br/>";
}
Почему так?