我想提取html页面的body的内容以及其子节点的tagNames.我已经采取了一个这样的例子:
原文链接:https://www.f2er.com/php/131242.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>
$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’与每个实际的nodeName.
这是代码
$l=$d->childNodes->item(1)->childNodes->item(1)->childNodes; foreach ($l as $li) { echo $li->childNodes->item(0)->nodeName."<br/>"; }
为什么这样?