JSOUP删除属性中出现多次的单词

时间:2017-09-19 06:23:25

标签: java html parsing jsoup

假设内容如下:

<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>

删除一词。关于如何处理这个问题的任何建议

1 个答案:

答案 0 :(得分:2)

您的输入HTML具有转义的初始引号。这意味着,您的alt标记的值不是man with a umbrella on terrace with lots of xyz,而是"man。在alt标记之后,您基本上有多个布尔属性,即witha等。

然后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>