Java Html解析器通过保留原始Html标记和换行符来替换Html文档中的超链接

Java Html解析器通过保留原始Html标记和换行符来替换Html文档中的超链接,java,html-parsing,Java,Html Parsing,我正在使用Jsoup html解析器替换html文档中的超链接。我希望实际的情况下,元素和换行符是因为即使在更新html文档。但是,Jsoup正在将大小写更新为小写,更新少数元素,并删除换行符。我也尝试过ParseSettings。但是在解析设置中,doc.select(“a[href]”)不返回元素。下面是我正在使用的代码 有人能帮我找到正确的html解析器吗?它使用java通过保持html文档的原样来替换超链接 File input = new File(fileEntry.getPath(

我正在使用Jsoup html解析器替换html文档中的超链接。我希望实际的情况下,元素和换行符是因为即使在更新html文档。但是,Jsoup正在将大小写更新为小写,更新少数元素,并删除换行符。我也尝试过ParseSettings。但是在解析设置中,
doc.select(“a[href]”)不返回元素。下面是我正在使用的代码

有人能帮我找到正确的html解析器吗?它使用java通过保持html文档的原样来替换超链接

File input = new File(fileEntry.getPath());
Parser parser = Parser.htmlParser();
parser.settings(new ParseSettings(true, true)); 
Document doc = parser.parseInput(input.toString(), "UTF-8");
Elements anchorLinks = doc.select("a[href]");
是你的朋友…即使文档中没有描述

请注意,第一个参数名为
html
,第二个参数名为
baseUri

第一个参数需要是实际的HTML内容,而不是文件名。您的代码试图解析文件名,就像它是HTML一样

第二个参数必须是URI或空字符串。“UTF-8”根本不是一个有效的URI,尽管由于您没有尝试解析链接,这可能不是一个严重的错误

您可能想要:


对于案例问题,请查看这是否有帮助,正如我在描述中提到的,我已经尝试了ParseSettings。它不返回元素。最困难的事情是保留同一元素的标记之间的大小写差异,例如
Document doc;
try (InputStream content = new BufferedInputStream(
    new FileInputStream(input))) {

    doc = Jsoup.parse(content, null, "", parser);
}