我尝试使用cxml-stp包搜索HTML,但失败了。
* (cxml:parse "<html><body><table><tr><td/></tr><tr><td/></tr></table></body></html>" (stp:make-builder))
#.(CXML-STP-IMPL::DOCUMENT
:CHILDREN '(#.(CXML-STP:ELEMENT
#| :PARENT of type DOCUMENT |#
:CHILDREN '(#.(CXML-STP:ELEMENT
#| :PARENT of type ELEMENT |#
:CHILDREN '(#.(CXML-STP:ELEMENT
#| :PARENT of type ELEMENT |#
:CHILDREN '(#.(CXML-STP:ELEMENT
#| :PARENT of type ELEMENT |#
:CHILDREN '(#.(CXML-STP:ELEMENT
#| :PARENT of type ELEMENT |#
:LOCAL-NAME "td"))
:LOCAL-NAME "tr")
#.(CXML-STP:ELEMENT
#| :PARENT of type ELEMENT |#
:CHILDREN '(#.(CXML-STP:ELEMENT
#| :PARENT of type ELEMENT |#
:LOCAL-NAME "td"))
:LOCAL-NAME "tr"))
:LOCAL-NAME "table"))
:LOCAL-NAME "body"))
:LOCAL-NAME "html")))
* (stp:find-recursively (stp:of-name "td") document)
NIL
* (stp:filter-recursively (stp:of-name "td") document)
NIL我不太确定我到底做错了什么。cxml:parse的返回值看起来完全正常,这让我相信我错误地调用了stp:find-recursively和stp:filter-递归。
有人能给我指个方向吗?docs说这应该是可行的:
(stp:filter-recursively (stp:of-name "foo") node)顺便说一句,我正在通过Quicklisp加载我的应用程序所需的所有包:
(ql:quickload '("drakma" "closure-html" "cxml-stp"))发布于 2011-01-18 19:41:45
适用于我:
CL-USER> (stp:filter-recursively (stp:of-name "td") (cxml:parse "<html><body><table><tr><td/></tr><tr><td/></tr></table></body></html>" (stp:make-builder)))
(#.(CXML-STP:ELEMENT #| :PARENT of type ELEMENT |# :LOCAL-NAME "td")
#.(CXML-STP:ELEMENT #| :PARENT of type ELEMENT |# :LOCAL-NAME "td"))https://stackoverflow.com/questions/4721431
复制相似问题