Zend Framework дом проблема - PullRequest
3 голосов
/ 08 января 2010

Я хочу получить ярлык веб-сайта (favicon) и путь к таблице стилей с помощью запроса zend_dom

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

Запрос таблицы стилей работает, но запрос ярлыка не работает. Как я?

Спасибо.

1 Ответ

3 голосов
/ 08 января 2010

Это, похоже, проблема с реализацией запросов в стиле Zend в стиле css. В Zend / Dom / 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="shortcut и icon"]

Чтобы обойти это, вы можете использовать метод Zend_Dom_Query::queryXpath() и предоставить ему правильный запрос xPath. Как это:

$dom->queryXpath('//link[@rel="shortcut icon"]');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...