私はcxml-stpパッケージを使用してHTMLを検索しようとしています。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-recursivelyを間違って呼び出すと思います。
誰かが正しい方向に向いていますか? docsが、これは動作するはずと言う:私のため
(ql:quickload '("drakma" "closure-html" "cxml-stp"))
セッションあなたにshowは 'document'を定義しません。 – Svante
うわー、そうです。私はそれを見ていないとは信じられません...どのような恥ずかしい。 (setqドキュメント(cxml:parse ...))それは動作します。私はLispゴーグルがまだそれほど良いものではないと思う... –
これは私の見落としや言い訳ではない - しかし、.NETの土地では、私はArgumentNullExceptionを期待していただろう...しかし、このことは再帰的に呼び出され、nil引数を指定して例外をスローすることは実行できません。 –