获取href的Xpath表达式。不只是锚文本

时间:2012-08-02 18:44:44

标签: php xpath

尝试学习它的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部分。也许两者都有。我做错了什么?

3 个答案:

答案 0 :(得分:4)

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

echo $ahref->attributes->getNamedItem("href")->nodeValue . "<br />";

答案 1 :(得分:4)

使用

//a/@href

无需额外的代码(除了评估此表达式外)。

答案 2 :(得分:1)

echo $ahref->getAttribute('href') . "<br />";