使用css-selectors查找节点:query

时间:2013-11-28 05:51:23

标签: html css lisp common-lisp

我无法让css-selectors:query工作。 完全不明白args是以什么顺序进入的。 http://quickdocs.org/css-selectors/

查看源代码:

(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 个答案:

答案 0 :(得分:1)

编辑:快速加载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!