使用Jsoup在html文件中搜索字符串

时间:2016-10-28 23:19:56

标签: java html jsoup

任何人都可以帮我使用Jsoup或任何其他方法在HTML文件中搜索特定字符串。有内置的方法,但它们有助于提取特定标签内的标题或脚本文本,而不是一般的字符串。 在这段代码中,我使用了一个这样的内置方法从html页面中提取标题。 但我想搜索一个字符串。

package dynamic_tester;
import java.io.File;
import java.io.IOException;  
import org.jsoup.Jsoup;  
import org.jsoup.nodes.Document;  
public class tester {
    public static void main(String args[])
    {       
Document htmlFile = null;
{
try {
    htmlFile = Jsoup.parse(new File("x.html"), "ISO-8859-1");

}
catch (IOException e)
{
    e.printStackTrace();
}
String title = htmlFile.title();
System.out.println("Title = "+title);
}
}
}

1 个答案:

答案 0 :(得分:0)

这是一个样本。它将HTML文件作为文本字符串读取,然后对该字符串执行搜索。

package com.example;

import java.io.FileInputStream;
import java.nio.charset.Charset;

public class SearchTest {
    public static void main(String[] args) throws Exception {

        StringBuffer htmlStr = getStringFromFile("test.html", "ISO-8859-1");
        boolean isPresent = htmlStr.indexOf("hello") != -1;

        System.out.println("is Present ? : " + isPresent);
    }

    private static StringBuffer getStringFromFile(String fileName, String charSetOfFile) {
        StringBuffer strBuffer = new StringBuffer();
        try(FileInputStream fis = new FileInputStream(fileName)) {
            byte[] buffer = new byte[10240]; //10K buffer;
            int readLen = -1;

            while( (readLen = fis.read(buffer)) != -1) {
                strBuffer.append( new String(buffer, 0, readLen, Charset.forName(charSetOfFile)));
            }

        } catch(Exception ex) {
            ex.printStackTrace();
            strBuffer = new StringBuffer();
        }

        return strBuffer;
    }
}