我想使用zend_dom查询获取网站快捷方式图标(图标)和样式表路径
$dom = new Zend_Dom_Query($html);
$stylesheet = $dom->query('link[rel="stylesheet"]');
$shortcut = $dom->query('link[rel="shortcut icon"]');
谢谢.
最佳答案
这似乎与Zend的CSS样式查询实现有关.在Zend / Dom / Query.PHP中,查询函数调用转换函数以将查询转换为正确的xpath格式:
原文链接:https://www.f2er.com/html/530603.htmlpublic function query($query)
{
$xpathQuery = Zend_Dom_Query_Css2Xpath::transform($query);
return $this->queryXpath($xpathQuery,$query);
}
但是在transform()方法中,他们似乎正在使用一些非常基本的正则表达式将字符串按空格分割:
$segments = preg_split('/\s+/',$path);
这基本上意味着您的link [rel =“ shortcut icon”]查询现在变为两个查询:link [rel =“ shortcut and icon”]
要解决此问题,可以使用方法Zend_Dom_Query :: queryXpath()并为其提供适当的xPath查询.像这样:
$dom->queryXpath('//link[@rel="shortcut icon"]');