我是PHP DOM对象的新手,有一个问题,我找不到解决方案.我有一个带有以下HTML的DOMDocument:
<div id="header">
</div>
<div id="content">
<div id="sidebar">
</div>
<div id="info">
</div>
</div>
<div id="footer">
</div>
Run Code Online (Sandbox Code Playgroud)
我需要获取第一级的所有节点(标题,内容,页脚).hasChildNodes()不起作用,因为第一级节点可能没有子节点(页眉,页脚).现在我的代码看起来像:
$dom = new DOMDocument();
$dom -> preserveWhiteSpace = false;
$dom -> loadHTML($html);
$childs = $dom -> getElementsByTagName('div');
Run Code Online (Sandbox Code Playgroud)
但这让我得到了所有的div.任何建议?
您可能必须转到DOMDocument之外 - 可能转换为SimpleXML或DOMXpath
$file = $DOCUMENT_ROOT. "test.html";
$doc = new DOMDocument();
$doc->loadHTMLFile($file);
$xpath = new DOMXpath($doc);
$elements = $xpath->query("/");
Run Code Online (Sandbox Code Playgroud)