使用xpath通配符获取“图标”和“快捷方式图标”

时间:2013-11-18 18:14:15

标签: php html xpath favicon

我正在尝试找出如何使用xpath通配符来获取favicon:

$doc = new DOMDocument();
$doc->strictErrorChecking = FALSE;
$doc->loadHTML(file_get_contents($url));
$xml = simplexml_import_dom($doc);

在这里,我正在测试“快捷图标”和“图标”(使用三元运算符):

$query = $xml->xpath('//link[@rel="shortcut icon"]');

$arr = (empty($query) ? $xml->xpath('//link[@rel="icon"]') : $query);

$favicon = $arr[0]['href'];

它有效,但它不是很优雅;是否有通配符(*)方法同时获取“快捷图标”和“图标”?

1 个答案:

答案 0 :(得分:4)

您可以使用contains

//link[contains(@rel, "icon")]

这将匹配任何包含文字" icon"的链接元素。在其rel属性中。

注意:如果您知道rel属性将始终为" icon"和"快捷方式图标",明确可能更安全。这样你就不会得到一些恰好包含" icon"。

的其他链接
//link[@rel="icon" or @rel="shortcut icon"]