首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将本地html文件加载到Jsoup中?

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

Stack Overflow用户
提问于 2012-03-08 01:05:32
回答 2查看 17.2K关注 0票数 8

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

代码语言:javascript
复制
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)

代码语言:javascript
复制
The file can be read: true
result is <div id="navbar">
this is the div
</div>

结果时:

Jsoup.parseBodyFragment(input)文档doc =

代码语言:javascript
复制
The file can be read: true
nothing!
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-08 01:27:44

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

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

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

代码语言:javascript
复制
File in = new File(input);
Document doc = Jsoup.parse(in, null);
票数 13
EN

Stack Overflow用户

发布于 2021-11-15 13:44:52

这是针对Kotlin用户的;非常类似于Java版本:

代码语言:javascript
复制
val file = File("my-document.html")
val document = Jsoup.parse(file, "UTF-8")

这是此方法的文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9611570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档