Php DomDocument遍历几个div。在父元素上具有句柄

Php DomDocument遍历几个div。在父元素上具有句柄,php,html,domdocument,Php,Html,Domdocument,好的,我需要遍历几个div并提取每个div中的标记和标记内的内容 文档中有一个ID为几行的div,它是我能找到的最接近我需要的div的div,标记所在的真实div是元素中具有ID的第6个子div。我目前有以下内容: $doc = new DOMDocument(); $doc->loadHTML($html); $container = $doc->getElementById('container'); $containerDivs= $container->getElem

好的,我需要遍历几个div并提取每个div中的
标记和标记内的内容

文档中有一个ID为几行的div,它是我能找到的最接近我需要的div的div,
标记所在的真实div是元素中具有ID的第6个子div。我目前有以下内容:

$doc = new DOMDocument();
$doc->loadHTML($html);

$container = $doc->getElementById('container');
$containerDivs= $container->getElementsByTagName('div');

// Problem here, item() returns DOMNode which has no getElementsByTagName()
$sideBar = $containerDivs->item(5);

// This is what I want to do but can't because my $sideBar is a DOMNode not a
// DOMElement so it does not have a getElementsByTagName() method
$categories = $sideBar->getElementsByTagName('a');
如何使我的
$sideBar
成为
domeElement
,从而拥有所需的功能


非常感谢您的帮助。

您可以使用
DOMXPath
作为替代:

$selector = new DOMXPath($doc);
$categories = $selector->query('//*[@id="container"]/div[5]/a');

了解更多关于和的信息

似乎并不太糟糕。在此之后,我可以执行getElementsByTagName()或类似操作吗?DOMXPath与DOMDocument类似,只是它能让您更好地控制一切?您必须将
DOMDocument
传递给
DOMXPath
构造函数
DOMXpath
然后提供一个接口来对
DOMDocument
执行XPath查询
$categories
将作为
DOMDocument::getElementsById()