gpt4 book ai didi

java - 如何将本地 html 文件加载到 Jsoup 中?

转载 作者:太空狗 更新时间:2023-10-29 14:06:34 26 4
gpt4 key购买 nike

我似乎无法使用 Jsoup 库加载本地 html 文件。或者至少它似乎没有认出它。我在本地文件中硬编码了确切的 html(作为 var 'html'),当我切换到它而不是文件输入时,代码工作得很好。但是两次都读取了文件。

import java.io.File;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;


public class FileHtmlParser{

public String input;


//constructor
public FileHtmlParser(String inputFile){input = inputFile;}


//methods
public FileHtmlParser execute(){

File file = new File(input);
System.out.println("The file can be read: " + file.canRead());

String html = "<html><head><title>First parse</title><meta>106</meta> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head>"
+ "<body><p>Parsed HTML into a doc.</p>" +
"" +
"<div id=\"navbar\">this is the div</div></body></html>";
Document doc = Jsoup.parseBodyFragment(input);




Elements content = doc.getElementsByTag("div");
if(content.hasText()){System.out.println("result is " + content.outerHtml());}
else System.out.println("nothing!");


return this;
}

}/*endOfClass*/

结果时间:
文档 doc = Jsoup.parseBodyFragment(html)

The file can be read: true
result is <div id="navbar">
this is the div
</div>

结果时间:
文档 doc = Jsoup.parseBodyFragment(input)

The file can be read: true
nothing!

最佳答案

你的错误在于假设 Jsoup.parseBodyFragment() 知道你传递给它的是包含 html 标记的文件名还是包含 html 标记的字符串。

Jsoup.parseBodyFragment(input) 期望 input 是包含 html 标记的 String,而不是文件名。

要让它从文件中解析,请改用 Jsoup.parse(File in, String charsetName) 方法:

File in = new File(input);
Document doc = Jsoup.parse(in, null);

关于java - 如何将本地 html 文件加载到 Jsoup 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9611570/

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