2013-11-28 2 views
1

У меня возникли проблемы с получением css-selectors:query для работы. Полностью не понимал, какие аргументы входят и в каком порядке. http://quickdocs.org/css-selectors/Найти узлы с css-селекторами: запрос

Глядя на исходный код:

(defun query (inp &optional (trees buildnode:*document*)) 
    "Given a css selector, attempt to find the matching nodes in the passed in 
    dom-trees (defaults to the document)" 
    (%query inp trees)) 

Я не знаю, что inp означает, но методом исключения предположить, это означает строку селектора CSS.

(defun get-page (url) 
    "Get STP(DOM alternative) representation of page" 
    (chtml:parse 
    (drakma:http-request url) 
    (cxml-stp:make-builder))) 

(css-selectors:query "a" (get-page "http://lisp.org/")) ; Doesn't work 
(css-selectors:query (get-page "http://lisp.org/") "a") ; Worth a try 

Пример использования очень поможет.

ответ

1

Редактировать: Quickload css-selectors-stp, чтобы заставить его работать с STP.

Я связался с автором, и документация была сделана более понятной. Поддержка STP должна была быть объединена и завершена, но автор написал этот пакет для DOM и никогда не использовал STP. Поэтому он ДОЛЖЕН работать для STP, но не по какой-либо причине.

следующие работы:

(defun get-page (url) 
    "Get DOM representation of page" 
    (chtml:parse 
    (drakma:http-request url) 
    (cxml-dom:make-dom-builder))) 

(css-selectors:query "a" (get-page "http://lisp.org/")) ; Success! 
Смежные вопросы