首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cxml-stp搜索HTML

使用cxml-stp搜索HTML
EN

Stack Overflow用户
提问于 2011-01-18 15:20:23
回答 1查看 486关注 0票数 1

我尝试使用cxml-stp包搜索HTML,但失败了。

代码语言:javascript
复制
* (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说这应该是可行的:

代码语言:javascript
复制
(stp:filter-recursively (stp:of-name "foo") node)

顺便说一句,我正在通过Quicklisp加载我的应用程序所需的所有包:

代码语言:javascript
复制
(ql:quickload '("drakma" "closure-html" "cxml-stp"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-18 19:41:45

适用于我:

代码语言:javascript
复制
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"))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4721431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档