gpt4 book ai didi

java - 如何使用 JSoup 将 HTML 中的 ' ' 更改为 ' '

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:19 27 4
gpt4 key购买 nike

我正在使用 JSoup 来解析 HTML 文件并删除在 XML 中无效的元素,因为我需要对文件应用 XSLT。我遇到的问题是“nbsp;”存在于我的文档中。我需要将它们更改为 unicode '#160;'这样我就可以在文件上运行 XSLT。

所以我想:

<p> &nbsp; </p> 
<p> &nbsp; </p>
<p> &nbsp; </p>
<p> &nbsp; </p>

成为:

<p> &#160; </p> 
<p> &#160; </p>
<p> &#160; </p>
<p> &#160; </p>

我尝试使用文本替换,但没有成功:

Elements els = doc.body().getAllElements();
for (Element e : els) {
List<TextNode> tnList = e.textNodes();
for (TextNode tn : tnList){
String orig = tn.text();
tn.text(orig.replaceAll("&nbsp;","&#160;"));
}
}

执行解析的代码:

File f = new File ("C:/Users/jrothst/Desktop/Test File.htm");

Document doc = Jsoup.parse(f, "UTF-8");
doc.outputSettings().syntax( Document.OutputSettings.Syntax.xml );
System.out.println("Starting parse..");
performConversion(doc);

String html = doc.toString();
System.out.println(html);
FileUtils.writeStringToFile(f, doc.outerHtml(), "UTF-8");

如何使用 JSoup 库进行这些更改?

最佳答案

以下对我有用。您无需进行任何手动搜索和替换:

File f = new File ("C:/Users/seanbright/Desktop/Test File.htm");

Document doc = Jsoup.parse(f, "UTF-8");
doc.outputSettings()
.syntax(Document.OutputSettings.Syntax.xml)
.escapeMode(Entities.EscapeMode.xhtml);

System.out.println(doc.toString());

输入:

<html><head></head><body>&nbsp;</body></html>

输出:

<html><head></head><body>&#xa0;</body></html>

(   相同,只是十六进制而不是十进制)

关于java - 如何使用 JSoup 将 HTML 中的 '&nbsp;' 更改为 '&#160;',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38596055/

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