1
我找不到例子並不能找出這些函數的文檔:如何使用CXML-STP的查找遞歸和查找遞歸如果
說我想在Stack Overflow的首頁找到第一個<div class="summary">
。我可以在HTML樹是這樣的:
(defun get-page (url)
"Get STP(DOM alternative) representation of page"
(chtml:parse
(drakma:http-request url)
(cxml-stp:make-builder)))
(get-page "http://stackoverflow.com")
從這裏,雖然,我只是不知道find-recursively
和find-recursively-if
應該是什麼樣子與真正的參數。
編輯:解決的頭版上發現第一<div class="summary">
所以使用find-recursively-if
:
(cxml-stp:find-recursively-if
(lambda (node)
(and (typep node 'cxml-stp:element)
(equal (stp:local-name node) "div")
(equal (stp:attribute-value node "class") "summary")))
(get-page "http://stackoverflow.com"))
你能不能給你想要做什麼的例子嗎?看起來這些函數的工作方式與CL的'find'和'find-if'工作方式基本相同。 'item'可以是一個節點,在這種情況下,你可以直接找到節點,或者可以是例如一個數字,如果'key'函數需要一個節點並返回一個數字等。 –