2

玩弄 xpath 表达式试图学习它。我找到了一个代码片段,并对其进行了一些调整。我想要做的是获取页面上的每个链接。

$baseurl = "http://www.example.com";
$html = file_get_contents($baseurl);

$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);


$ahrefs = $xpath->query('//a');

foreach ($ahrefs as $ahref) { 
    echo $ahref->childNodes->item(0)->nodeValue . "<br />";
}

但现在我正在抓取锚文本。我想要那个href部分。甚至可能两者兼而有之。我究竟做错了什么?

4

3 回答 3

4

使用

//a/@href

不需要额外的代码(除了评估这个表达式)。

于 2012-08-03T04:34:45.303 回答
4

要获取 href,您必须访问节点的attributes属性

echo $ahref->attributes->getNamedItem("href")->nodeValue . "<br />";
于 2012-08-02T18:54:39.990 回答
1
echo $ahref->getAttribute('href') . "<br />";
于 2012-08-02T18:57:40.903 回答