Android Jsoup在服务中-获取span的文本

Android Jsoup在服务中-获取span的文本,android,hyperlink,jsoup,title,html,Android,Hyperlink,Jsoup,Title,Html,我是jsoup的新手。几天来,我一直在试图从一个跨度中读出一个简单的数字,但没有成功 我希望在这里能找到帮助。我的html: <div class="navi"> <div class="tab mail"> <a href="/comm.php/indexNew/" accesskey="8" title="Messages"> <span class="tabCount">1 </span> <img src="/b2/mes

我是jsoup的新手。几天来,我一直在试图从一个跨度中读出一个简单的数字,但没有成功

我希望在这里能找到帮助。我的html:

<div class="navi">
<div class="tab mail">
<a href="/comm.php/indexNew/" accesskey="8" title="Messages">
<span class="tabCount">1 </span>
<img src="/b2/message.png" alt="Messages" class="moIcon i24" />
</a>
</div>
这会迫使我的应用程序崩溃。如果我将text()更改为ownText(),情况也一样。如果我删除text(),那么应用程序可以启动,但它给我空值


我做错了什么?顺便说一下,除了服务外,webview还加载相同的url。这可能是个问题吗?

你不是指
。选择(“.tabCount”)


顺便说一句,在Android上,AsyncTasks比Threads更方便。此外,空的catch块也是一种不好的做法。

您的select语句是错误的。可以在一行中插入整个选择字符串。此外,您必须在“tabCount”前面加上一个点,因为它是一个类

String count = doc.select("div.navi div.tab.mail a").first().select(".tabCount").text();

你只需要选择你感兴趣的元素,你不需要在之前得到每一个外部元素。在你的例子中,你可以试试看

String count = doc.select("span.tabCount").text();
定义元素“span”的类型和类名“.tabcount”

有关可能对您有所帮助的示例,请查看链接

编辑:

请尝试此代码,这将获得第一个跨度的值

Elements elements = doc.select("span.tabCount");
String count = elements.first().text();
如果你想打印所有元素,你可以这样做

Elements elements = doc.select("span.tabCount");
for (Element e : elements) {
  Log.d("Something", e.text();
}

对不起,是的。我是那个意思。你能给我举一个异步任务的例子吗?有什么更好的方法来捕获空的捕获块?谢谢。这至少不会让我的应用程序崩溃。以前每次我的应用程序在.text()结尾时崩溃。现在我仍然没有得到返回的值,但这可能只是因为我不知道我是否正确使用了log.d。如果我使用Log.d(“某物”,“测试”+(计数));这能给我带来价值吗?是的,记录应该有用。你在日志中看到了什么?count的值是多少?检查您的日志猫,查看您记录日志的那一行?它只会给我“测试”,但很抱歉。你还没有掌握全部信息。tabCount类在整个文档中出现了3次,我对这个类的第一个跨度很感兴趣。这可能是原因吗?String count=doc.select(“span.tabCount”).first().text();使我的应用程序崩溃:(抱歉,仍然没有运气。我注意到,只有当我特别使用.text()或.ownText()请求时,应用程序才会崩溃,如果我这样做:String title=doc.title();这工作得很好谢谢,但如果我尝试,这会使我的应用程序崩溃。:(我的应用程序崩溃,因为它返回null,但通常你的语句工作!
Elements elements = doc.select("span.tabCount");
for (Element e : elements) {
  Log.d("Something", e.text();
}