Xpath表达式获取href。不只是锚文本
问题描述:
玩弄xpath表达式试图学习它。我找到了一段代码,并对其进行了一些调整。我想要做的是获取页面上的每一个链接。Xpath表达式获取href。不只是锚文本
$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
部分。也许甚至两个。我究竟做错了什么?
答
echo $ahref->getAttribute('href') . "<br />";
答
使用在href:
//a/@href
没有额外的代码(除了这个表达式的评价) 是必要的。
这对我有效!通用XPath解决方案,而不是PHP特定的笨拙代码。 – 2014-04-08 22:14:54
@dhalperi,当然。 XPath是可移植的,并且XPath表达式可以在大多数编程语言不变的情况下使用。 – 2014-04-08 23:50:41