0

我有一个通过使用Document doc =jsoup.connect(someUrl).get()和提取的html片段Elements body=doc.select("div.chapter")

String myHtml = "
<div class="chapter">
  <h1>Hello this is my example</h1>
  <p>This is paragraph one</p>
  <p>This is paragraph two <sup class="num">Nuisance 1</sup><span class="notes">Nuisance 2</span></p>
  <p>This is paragraph three</p>
</div>"

我想用 JSOUP 删除它们的内容<sup> </sup><span> <\span>我读过使用正则表达式语法是个坏主意。大多数示例和答案都解决了这个问题以删除标签并保留内容。我想得到的是:

String newHtml = "
<div class="chapter">
  <h1>Hello this is my example</h1>
  <p>This is paragraph one</p>
  <p>This is paragraph two</p>
  <p>This is paragraph three</p>
</div>"

我使用 JSOUP 没有令人满意的结果(它保留了 SUP 和 SPAN 实体/标签。)。

4

3 回答 3

1

也许removeselectingsup元素之后使用:

doc.select("div > sup").remove();

在那里,我使用了一个子组合器,它适用于您的具体示例。如果它们在 的子元素中div,则必须调整选择器。

于 2013-08-06T16:30:19.973 回答
1
body.select("p > sup.num, p > span.notes").remove();
System.out.println(body.html());

在你的情况下应该是完美的。

于 2013-08-06T19:52:12.573 回答
1

在阅读了更多(更多!)并尝试了不同的选项之后,我根据自己的情况调整了一个解决方案:

doc.getElementsByClass("notes").remove();
doc.getElementsByClass("num").remove(); 
Elements newElement = doc.select("div.chapter");
String newHtml=newElement.toString();
于 2013-08-07T01:01:38.467 回答