我测试了 Jsoup,我无法删除不需要的标签的文本节点。 Idk 如果我错误的方法。 方法是:
String pretty = Jsoup.clean("<img src=\"marco\">Capretta</img><i>Sono misterioso</i><p color=\"white\"><font size=\"5\">Ciao</p><p>some text</p><br/> <p>another text</p></font>" , "", Whitelist.basic().addTags("br", "p","i"), new Document.OutputSettings().prettyPrint(true));
System.out.println(pretty);
结果是:
Capretta
<i>Sono misterioso</i>
<p>Ciao</p>
<p>some text</p>
<br>
<p>another text</p>
但我不想要 <img>
的文本节点(也适用于其他不需要的标签)...
所以结果更好:
<i>Sono misterioso</i>
<p>Ciao</p>
<p>some text</p>
<br>
<p>another text</p>
我也可以有不同的 html...
附言问题是针对 Java 而不是 Javascript!!!
最佳答案
假设您的 HTML 足够简单。
您可以通过首先解析
HTML
然后检索body 标记的子级
来实现这一点
String pretty = Jsoup.clean("<img src=\"marco\">Capretta</img><i>Sono misterioso</i><p color=\"white\"><font size=\"5\">Ciao</p><p>some text</p><br/> <p>another text</p></font>" , "", Whitelist.basic().addTags("br", "p","i"), new Document.OutputSettings().prettyPrint(true));
pretty= Jsoup.parse(pretty).getElementsByTag("body").get(0).children().toString();
System.out.println(pretty);
输出:
<i>Sono misterioso</i>
<p>Ciao</p>
<p>some text</p>
<br />
<p>another text</p>
关于java - 是否可以删除不需要的标签的文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35150963/