gpt4 book ai didi

android - 使用 Jsoup 解析文本文件

转载 作者:行者123 更新时间:2023-11-30 03:50:03 25 4
gpt4 key购买 nike

我的 res/raw 文件夹中有一个 Continent.txt 文件。里面包含以下内容。

<div class="continents"> 
<a href="#US">US</a>
<a href="#CA">Canada</a>
<a href="#EU">Europe</a>
</div>

我能够使用 jsoup 解析文本 US, Canada, Europe,但是当我将它们显示到 TextView 时,它们显示在一行中。输出看起来像这样。

美国加拿大欧洲

我希望输出是这样的。

美国

加拿大

欧洲

这是我的代码。

package com.example.readfile;


import java.io.InputStream;
import java.util.ArrayList;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.Resources;
import android.widget.TextView;

public class MainActivity extends Activity {
TextView txtContinent;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

txtContinent = (TextView) findViewById(R.id.textView1);

new MyTask().execute();
}

class MyTask extends AsyncTask<Void, Void, ArrayList<String>> {

ArrayList<String> arr_linkText = new ArrayList<String>();

@Override
protected ArrayList<String> doInBackground(Void... params) {

Document doc;

try {
Resources res = getResources();
InputStream in_s = res.openRawResource(R.raw.continent);

byte[] b = new byte[in_s.available()];
in_s.read(b);

doc = Jsoup.parse(new String(b));
Element link = doc.select("a").first();
String text = doc.body().text();

arr_linkText.add(text);

} catch (Exception e) {
// e.printStackTrace();
txtContinent.setText("Error: can't open file.");
}

return arr_linkText; // << retrun ArrayList from here
}

@Override
protected void onPostExecute(ArrayList<String> result) {

for (String temp_result : result) {

txtContinent.append(temp_result + "\n");
}

}

}

}

我不知道如何逐行读取文件,希望有人能给我解释一下。谢谢你!

最佳答案

您正在一次获取整个文档的文本。你需要按每个元素解析出来,像这样

Elements links = doc.select("a");
for (Element link : links) {
arr_linkText.add(link.text());
}

如果不清楚,上面的代码是用来替换下面的——

Element link = doc.select("a").first();
String text = doc.body().text();

arr_linkText.add(text);

关于android - 使用 Jsoup 解析文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14300995/

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