我有这个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”文本,并将其添加到变量中?
是否可以这样做?
感谢并希望得到一些答案!
答案 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();
}
}
}