gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 18:07:57 25 4
gpt4 key购买 nike

我是 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>

类 tabCount 在整个文档中出现了 3 次,我对此类的第一个跨度很感兴趣。现在我正在尝试在服务的 onCreate() 中创建一个线程:

Thread downloadThread = new Thread() {                     
public void run() {
Document doc;
try {
doc = Jsoup.connect("https://www.bla.com").get();

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

Log.d("SOMETHING", "test"+(count));


} catch (IOException e) {
e.printStackTrace();
}
}
};
downloadThread.start();

这会迫使我的应用程序崩溃。如果我将 text() 更改为 ownText(),也是如此。如果我删除 text() 然后应用程序可以启动但它给我 null。

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

最佳答案

你只需要选择你感兴趣的元素,你不需要事先获取每一个外部元素。在您的示例中,您可以尝试

String count = doc.select("span.tabCount").text();

定义元素类型“span”和类名“.tabcount”的地方

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

编辑:

请尝试使用此代码,这将获取第一个跨度的值。

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();
}

关于服务中的 Android Jsoup - 获取 span 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com