好的,我需要迭代几个div,并提取每个div中的<a></a>标记和标记中的内容。
文档中有一个带有ID的div,它是我所需要的最接近div的div,我想要的<a></a>标记的真正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成为一个DOMElement,以便我有我需要的功能?
如能提供任何帮助,将不胜感激。
发布于 2013-09-10 11:19:42
您可以使用DOMXPath作为另一种选择:
$selector = new DOMXPath($doc);
$categories = $selector->query('//*[@id="container"]/div[5]/a');了解更多关于XPath和DOMXPath的信息
https://stackoverflow.com/questions/18717461
复制相似问题