Zend框架dom问题

3
我想使用zend_dom查询获取网站快捷图标(favicon)和样式表路径。
$dom = new Zend_Dom_Query($html); 
$stylesheet = $dom->query('link[rel="stylesheet"]');
$shortcut = $dom->query('link[rel="shortcut icon"]');

样式表查询可行,但快捷图标查询不可行。我该怎么办?
谢谢。
1个回答

3

这似乎是Zend的CSS样式查询实现存在问题。 在Zend / Dom / Query.php中,query函数调用转换函数将查询转换为正确的xpath格式:

public 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="shortcuticon"]

为了解决这个问题,您可以使用方法Zend_Dom_Query::queryXpath()并提供一个正确的xPath查询。像这样:

$dom->queryXpath('//link[@rel="shortcut icon"]');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接