2010-01-08 79 views
3

我想网站的快捷方式图标(图标)和样式表的路径与zend_dom查询Zend Framework的DOM问题

$dom = new Zend_Dom_Query($html); 
$stylesheet = $dom->query('link[rel="stylesheet"]'); 
$shortcut = $dom->query('link[rel="shortcut icon"]'); 

样式表的查询工作,但快捷方式图标查询不起作用。我怎样做?

谢谢。

回答

3

这似乎是Zend的CSS样式查询实现的问题。在Zend公司/大教堂/ Query.php,查询函数调用转换函数的查询转换成正确的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"]');