Java - 如何使用jsoup从标签中检索文本

时间:2014-05-16 18:14:09

标签: java html jsoup

我有这个HTML文件,我想检索两个标签之间的文本。但也可以在以下标签中获取文本。

例如:

<font class="classname">Some Text Here</font>
<font class="classname">Some More Text Here</font>
<font class="classname">Even Some More Text Here</font>

如何使用JSOUP读取HTML文件,只检索普通的“Some Text Here”文本,并将其添加到变量中?

是否可以这样做?

感谢并希望得到一些答案!

1 个答案:

答案 0 :(得分:1)

根据评论。

此程序将遍历文件夹和子文件夹中的所有文件,并将标题更改为第一个<font class="classname">的值。请注意,它不会检查html文件。它将读取所有文件,将其视为html文件。如果你想从这个文件夹中过滤出html文件,你可以使用filet过滤器。希望这会有所帮助。

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;


public class HtmlParser {

    public static void main(String[] args) {
        modifyTitleForAllFilesInFolder(new File("c:/Test"));
        System.out.println("Done");
    }

    public static void modifyTitleForAllFilesInFolder(final File folder) {
        for (final File fileEntry : folder.listFiles()) {
            if (fileEntry.isDirectory()) {
                modifyTitleForAllFilesInFolder(fileEntry);
            } else {
                modifyFile(fileEntry.getAbsolutePath());
            }
        }
    }

    private static void modifyFile(String fileName) {
        try {
            File input = new File(fileName);
            Document doc = Jsoup.parse(input, "UTF-8");
            String newTitle = doc.select("font.classname").first().text();
            doc.title(newTitle);
            PrintWriter writer = new PrintWriter(input,"UTF-8");
            writer.write(doc.html());
            writer.flush();
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}