DOMDocument::getElementsByTagName:只有X个第一个元素


DOMDocument::getElementsByTagName : only X first elements

我有以下代码:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
$doc = new DomDocument;
$doc->preserveWhiteSpace = false;
if ($doc->loadHtml(curl_exec($ch)))
    $anchors = $doc->getElementById('comments')->getElementsByTagName('a');
?>

搜索远端页面的所有链接(<(A>标签)在注释div

我希望这个函数只返回第50个<标记,无需解析整个div。这可能吗?如果是,怎么做?>

使用XPath表达式

$elements = 50;
$doc = new DOMDocument;
$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$anchors = $xpath->query(
    sprintf('//div[@id="comments"]/a[position() <= %d]', $elements)
);