1

私は現在 LISP を学んでおり、簡単な質問があります。CXML を使用すると、ローカル ファイルを簡単に解析できますが、ネットから XML ファイルを取得してメモリ内で解析しようとしています。コードに問題があることはわかっていますが、それを完全に理解することはできません。

(cxml:parse-file (map 'string #'code-char
                   (drakma:http-request "http://api.eve-online.com/server/ServerStatus.xml.aspx"))
   (cxml-dom:make-dom-builder))
4

1 に答える 1

1
(cxml:parse (map 'string #'code-char (drakma:http-request "http://api.eve-online.com/server/ServerStatus.xml.aspx")) 
                                     (cxml-dom:make-dom-builder))

結果:

#<RUNE-DOM::DOCUMENT {1005BECB53}>

cxml:parseあなたの例に基づいて正しく理解できれば、あなたが探しているコマンドです。cxml:pars-streamストリームがcxml:parse-file必要で、ファイルが必要です...どちらも指定していません。両方に渡す引数は文字列です。

cxml:parse-rodはより具体的で、文字列のみcxml:parseを解析しますが、 は汎用的で、ファイル、ストリーム、オクテット、および文字列を解析します。

ちなみに、あなたもできます

(cxml:parse-octets (drakma:http-request "http://api.eve-online.com/server/ServerStatus.xml.aspx") (cxml-dom:make-dom-builder))

バイナリ配列をドラクマから文字列に変換する必要はありません。

于 2012-09-04T03:25:21.660 に答える