Android - 如何通过jsoup解析html并填充到ArrayList中?
Jsoup是一款用于解析、操作和遍历HTML文档的Java库。它提供了一种简单而灵活的方式来从HTML中提取数据。在Android中,你可以使用Jsoup来解析HTML,并将解析结果填充到ArrayList中。
以下是一个示例代码,演示了如何使用Jsoup解析HTML并将结果填充到ArrayList中:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ArrayList<String> dataList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dataList = new ArrayList<>();
// 在后台线程中执行解析操作
new Thread(new Runnable() {
@Override
public void run() {
try {
// 使用Jsoup连接到指定的URL并获取HTML文档
Document doc = Jsoup.connect("https://example.com").get();
// 使用CSS选择器选择需要解析的HTML元素
Elements elements = doc.select("div.my-class");
// 遍历解析结果并将数据填充到ArrayList中
for (Element element : elements) {
String data = element.text();
dataList.add(data);
}
// 解析完成后,在主线程中更新UI
runOnUiThread(new Runnable() {
@Override
public void run() {
// 在这里可以使用解析结果填充UI组件或进行其他操作
// 例如,将数据显示在ListView中
ListView listView = findViewById(R.id.list_view);
ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, dataList);
listView.setAdapter(adapter);
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
}
在上述代码中,我们首先创建了一个ArrayList对象来存储解析结果。然后,在后台线程中使用Jsoup连接到指定的URL并获取HTML文档。接下来,我们使用CSS选择器选择需要解析的HTML元素,并遍历解析结果,将数据填充到ArrayList中。最后,在主线程中更新UI,例如将数据显示在ListView中。
需要注意的是,上述代码仅为示例,你需要根据实际情况修改URL和CSS选择器,以及根据你的UI布局进行相应的修改。
推荐的腾讯云相关产品:腾讯云服务器(https://cloud.tencent.com/product/cvm)和腾讯云数据库(https://cloud.tencent.com/product/cdb),它们提供了稳定可靠的云计算基础设施和数据库服务,适用于各种规模的应用和业务场景。
领取专属 10元无门槛券
手把手带您无忧上云