Racket 球拍中的一些Xexpression不';不能通过xexpr吗?
谁能告诉我这里发生了什么事Racket 球拍中的一些Xexpression不';不能通过xexpr吗?,racket,stack-overflow,Racket,Stack Overflow,谁能告诉我这里发生了什么事 #lang racket (require (planet neil/html-parsing:2:0) net/url xml/path xml) (define page "http://stackoverflow.com/questions/18902934/compile-and-run-eclipse-project-from-command-prompt") (define port (get-pure-port (string-&g
#lang racket
(require (planet neil/html-parsing:2:0)
net/url xml/path xml)
(define page "http://stackoverflow.com/questions/18902934/compile-and-run-eclipse-project-from-command-prompt")
(define port (get-pure-port (string->url page) ))
(define xexp (html->xexp port))
(displayln xexp)
(xexpr? xexp)
(define title (se-path* '(title) xexp))
(displayln title)
它向下拉一个html页面,似乎将其转换为xexpr。在某种意义上,html->xexp不会失败。结果和我预期的一样
但是(xexpr?xexp)
返回#f
并尝试在其上调用se path*失败,错误为
se-path*: contract violation
expected: xexpr?
given: '(*TOP* (*DECL* DOCTYPE html) "\n" (html (@ (itemscope) (itemtype "http://schema.org/QAPage")) "\n" (head "\n" "\n" (title "java - Compile and run Eclipse Project from command prompt - Stack Overflow") "\n" " " (link (@ (rel "shortcut icon") (h...
in: the 2nd argument of
(-> se-path? xexpr? any/c)
contract from: <collects>/xml/path.rkt
blaming: anonymous-module
at: <collects>/xml/path.rkt:74.2
se路径*:违反合同
预期:xexpr?
给定:“(*TOP*(*DECL*DOCTYPE html)”\n“(html(@(itemscope)(itemtype)”http://schema.org/QAPage“\n”(标题“\n”“\n”(标题“java-从命令提示符编译并运行Eclipse项目-堆栈溢出”)“\n”“”(链接(@(rel“快捷方式图标”)(h。。。
in:的第二个参数
(->se路径?xexpr?任意/c)
合同来源:/xml/path.rkt
责备:匿名模块
at:/xml/path.rkt:74.2
因此(html->xexp端口)可能正在生成无效的xexpr
我该如何调试它呢?就像我说的,它是xexpr的一大块,但看起来还可以。在其他页面上,代码的工作方式与我预期的一样。它肯定是关于stackoverflow页面的。但我不知道该怎么做。如果我得到一块几乎可以正常运行的xexpr,我可以清理它,这样se path*之类的东西就可以工作了吗?啊……这似乎可以解释 sxml/xexp与xexpr不同
但这似乎是一个常见的困惑,所以我将问题留在这里,以防其他人遇到类似的问题。啊……这似乎可以解释问题 sxml/xexp与xexpr不同 但这似乎是一个常见的困惑,所以我将把问题留在这里,以防其他人遇到类似的问题