0

所有-我有以下代码:

class AddStringTask extends AsyncTask<Void, String, Void> {    
    @Override
    protected Void doInBackground(Void... unused) {
        org.jsoup.nodes.Document doc = null;
        try {
            doc = Jsoup.connect("http://scores.espn.go.com/
                                 nfl/gamecast?
                                 gameId=320909007',%20'gamecast320909007"
                               ).get();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        docTitle = doc.select("head").first().text();
        return null;    
    }
}

我得到输出“NFL Gamecast - Chicago vs Green Bay”(顺便说一句,Green Bay 赢了)。这很好,但是当我试图获得实际分数时,我无法弄清楚如何。我的问题是我试图用<div id="awayScoreBox" class="vscorebox">...</div>(这是在<Body>标签下)替换“头”。所以按照使用“head”标签的格式,我尝试了这个:

docTitle = doc.select("div id="awayScoreBox" class="vscorebox"").first().text();
return null;    

你可以想象我有一个语法错误,但不知道为什么。我意识到我可能必须指定这是在<Body>标签下,但我找不到有关如何执行此操作的任何信息。任何帮助将不胜感激。

4

2 回答 2

1

它是一个用于同时选择 id 和 class的 css 选择器,所以它是

doc.select("div#awayScoreBox.vscorebox");
于 2012-09-15T00:01:36.090 回答
0

你没有逃避引号。您当前正在使用它。

docTitle = doc.select("div id="awayScoreBox" class="vscorebox"").first().text();
return null;

将部分更改doc.select为此。

doc.select("div id=\"awayScoreBox\" class=\"vscorebox\"").first().text();

这就是为什么你得到一个SyntaxException.

于 2012-09-15T00:12:08.767 回答