在PHP中使用DOMDocument获取href值

时间:2020-06-06 21:54:17

标签: php xpath domdocument

file_get_contents之后,我收到了以下HTML:

<h1>
    <a href="blablabla.html">Manhattan Skyline</a>
</h1>

我只想获得blablabla.html部分。

如何使用PHP中的DOMDocument功能来解析它?

重要提示:我收到的HTML包含多个<a href="...">

我尝试的是:

$page = file_get_contents('https://...');
$dom = new DOMDocument();
$dom->loadHTML($page);
$xp = new DOMXpath($dom);

$url = $xp->query('h1//a[@href=""]');
$url = $url->item(0)->getAttribute('href');

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

h1//a[@href=""]正在寻找一个具有a属性且具有空字符串作为值的href元素,而您的href属性包含的内容不是空字符串,值。


如果这是整个文档,则可以使用表达式//a

否则,h1//a也应该工作。

如果您要求a元素具有一个带有任何值的href属性,则可以使用h1//a[@href]

如果h1不在文档的根目录,则可能要使用//h1。因此,最后一个示例将变为//h1//a[@href]