假设内容如下:
<p><img src=\"https://abcd.com/pic.jpg\" alt=\"man with a umbrella on terrace with lots of xyz\" width=\"500\" height=\"400\" /></p>
如果使用以下代码行,JSOUP将删除在任何属性中出现多次的单词。
Parser parser = Parser.htmlParser();
parser.settings(new ParseSettings(true, true));
Document doc = Jsoup.parse(modifiedContent,"",parser);
<p><img src=\"https://abcd.com/pic.jpg\" alt=\"man with a umbrella on terrace lots of xyz\" width=\"500\" height=\"400\" /></p>
删除与一词。关于如何处理这个问题的任何建议
答案 0 :(得分:2)
您的输入HTML具有转义的初始引号。这意味着,您的alt标记的值不是man with a umbrella on terrace with lots of xyz
,而是"man
。在alt标记之后,您基本上有多个布尔属性,即with
,a
等。
然后JSoup剥离出重复的布尔属性,因为它们没有任何效果。您应该将HTML更改为正确的格式,而不使用转义的引号
<p><img src="https://abcd.com/pic.jpg" alt="man with a umbrella on terrace with lots of xyz" width="500" height="400" /></p>
在本地运行此程序并在System.out中运行doc会产生正确的
值<html>
<head></head>
<body>
<p><img src="https://abcd.com/pic.jpg" alt="man with a umbrella on terrace with lots of xyz" width="500" height="400"></p>
</body>
</html>