Php DomDocument遍历几个div。在父元素上具有句柄
好的,我需要遍历几个div并提取每个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
标记和标记内的内容
文档中有一个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()