如何使用PHP DOMDocument获取第一级节点?

Den*_*ovs 1 php dom

我是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.任何建议?

Chr*_*ish 7

您可能必须转到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)