0

我有一个在线 .txt 文件,我正在下载到我的下载文件夹,/mnt/sdcard/Download/testfile.txt然后在 ListView 中显示它。.txt 文件包含<html><head><title>我希望删除的 html 标记等。我还需要替换所有的<br />\n以便我BufferedReader将它们视为新行并将单独的条目添加到 ListView 中。

目前,它会将文本加载到带有所有标记的单个 ListView 条目中,而不是在<br />.

以下是我当前的代码。

public void load() {
    try {
        File sdcard = Environment.getExternalStorageDirectory();
        BufferedReader bufferedReader = new BufferedReader(new FileReader(
                sdcard + "/Download/testfile.txt"));
        while ((line = bufferedReader.readLine()) != null) {
            line = bufferedReader.readLine();
            if (line != "")
                entries.add(line);
        }
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_activated_1, entries);
        lv.setAdapter(adapter);
        bufferedReader.close();
    } catch (java.io.FileNotFoundException e) {
    } catch (java.io.IOException e) {       
    }
}

testfile.txt如下:

<html><head><title>mytextfile</title></head><body style ='font-family:monospace:'>1. Line 1 - Item 1<br />2. Line 2 - Item 2<br />3. Line 3 - Item 3<br />4. Line 4 - Item 4<br />5. Line 5 - Item 5<br />6. Line 6 - Item 6<br />7. Line 7 - Item 7<br />8. Line 8 - Item 8<br />9. Line 9 - Item 9<br />10. Line 10 - Item 10<br />11. Line 11 - Item 11<br />12. Line 12 - Item 12<br />13. Line 13 - Item 13<br />14. Line 14 - Item 14<br />15. Line 15 - Item 15<br />16. Line 16 - Item 16<br />17. Line 17 - Item 17<br />18. Line 18 - Item 18<br />19. Line 19 - Item 19<br />20. Line 20 - Item 20</body></html>

4

1 回答 1

1

您可以使用 Java HTML 解析器来剥离 html:http: //jsoup.org/

Jsoup.parse(yourHtmlString).text()应该这样做。

关于换行符,请替换它们:

replaceAll("(<br />)", "\\\\n")

但我不能告诉你的是,使用该库与 Android 是否会出现兼容性问题。

于 2012-12-09T16:58:34.947 回答