0

好的,所以我需要遍历几个 div 并提取<a></a>每个 div 中的标签和标签内的内容。

文档中有几行带有 ID 的 div,它是我能得到的最接近我需要的 div,<a></a>我想要的标签所在的真正 div 是元素中的第 6 个子 div,它有 ID . 到目前为止我有这个:

$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这样我拥有我需要的功能?

任何帮助将不胜感激,谢谢。

4

1 回答 1

1

您可以DOMXPath用作替代方案:

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

了解更多关于XPathDOMXPath

于 2013-09-10T11:19:42.890 回答