Есть ли класс/библиотека PHP, который позволит мне запрашивать документ XHTML с помощью селекторов CSS? Мне нужно очистить некоторые страницы для данных, которые очень легко доступны, если я могу каким-то образом использовать селектор CSS (jQuery испортил мне!). Любые идеи?
Библиотека CSS-селектора CSS?
Ответ 1
После дальнейшего Googling (начальные результаты были не очень полезны), похоже, что для этого есть библиотека Zend Framework, а также некоторые другие:
Ответ 2
XPath - довольно стандартный способ доступа к узлам XML (и XHTML) и обеспечивает гораздо большую точность, чем CSS.
Ответ 3
Еще один:
http://querypath.org/
Ответ 4
Великий является компонентом symfony 2, CssSelector\Parser & shy; Введение. Он преобразует селектора CSS в выражения XPath. Взгляните =)
Ответ 5
Для jQuery наиболее интересными могут быть порт jQuery для PHP, который phpQuery. Портируются практически все разделы библиотеки. Кроме того, он содержит плагин WebBrowser, который может использоваться для веб-скрипинга всего пути/процессов сайта (например, доступ к данным, доступным после входа в систему). Он просто имитирует веб-браузер на сервере (события и файлы cookie тоже). Последние версии имеют экспериментальную поддержку XML пространств имен и CSS3 "|" селектор.
Ответ 6
В итоге я использовал PHP Query Lite, это очень просто и имеет все, что мне нужно.
Ответ 7
Для анализа документа я использую DOM. Это может легко решить вашу проблему, если вы знаете имя тега (в этом примере "div" ):
$doc = new DOMDocument();
$doc->loadHTML($html);
$elements = $doc->getElementsByTagName("div");
foreach ($elements as $e){
if ($e->getAttribute("class")!="someclass") continue;
//its a div.classname
}
Не уверен, что DOM позволяет сразу получить все элементы документа... вам может потребоваться обход дерева.
Ответ 8
Я написал свой, основанный на движке селектора CSS Mootools http://selectors.svn.exyks.org/. он полагается на способность расширения simplexml (так что он доступен только для чтения)