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))

无需将二进制数组从 drakma 转换为字符串。

于 2012-09-04T03:25:21.660 回答