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不同

但这似乎是一个常见的困惑,所以我将把问题留在这里,以防其他人遇到类似的问题