当前位置: 首页 > 知识库问答 >
问题:

Jsoup只删除html标记

酆奇文
2023-03-14

什么是正确的方法来删除只有HTML标签(保留所有自定义/未知的标签)与JSOUP(不是正则表达式)?

预期输入:

<html>
  <customTag>
    <div> dsgfdgdgf </div>
  </customTag>
  <123456789/>
  <123>
  <html123/>
</html>

预期产出:

  <customTag>
     dsgfdgdgf
  </customTag>
  <123456789/>
  <123>
  <html123/>

我尝试使用白名单清洁剂。none(),但它也会删除自定义标记。

我也尝试过:

String str = Jsoup.parse(html).text()

但是它也删除了自定义标签。

这个答案对我不好,因为自定义标记的数量是无限的。

共有1个答案

杜哲彦
2023-03-14

您可能想尝试以下方法

String[] tags = new String[]{"html", "div"};
Document thing = Jsoup.parse("<html><customTag><div>dsgfdgdgf</div></customTag><123456789/><123><html123/></html>");
for (String tag : tags) {
    for (Element elem : thing.getElementsByTag(tag)) {
        elem.parent().insertChildren(elem.siblingIndex(),elem.childNodes());
        elem.remove();
    }
}
System.out.println(thing.getElementsByTag("body").html());

请注意

制造雾

 类似资料:
  • 问题内容: 我想删除标签之间的所有内容。输入示例可能是 输入: 输出将是: 基本上,我必须先删除整个区块 谢谢, 问题答案: 您最好对找到的 所有 元素进行迭代。所以你可以保证 a。)所有元素都被删除并且 b。)如果没有元素,那么什么也做不了。 例: 编辑: (除了我的评论) 当简单的 null /范围检查 在这里足够时,请不要使用异常处理: 代替:

  • 我使用JSoup解析字符串,其中包含超文本标记语言标记为纯文本。例如: 它可以很好地解析它,但问题是我的Java字符串是否包含

  • 这似乎是一个简单的解决方案,但我一辈子都无法解决。 我有一个由< code >混合组成的元素集合 我想做的就是保留所有东西(包括标签和它的字符串),这是一个干净的

  • 尽管这听起来可能太基本了,但我想问一下如何使用JSoup从doc中删除元素。 我试图寻找它,但没有成功。 问题是: 这工作罚款。但是我相信一次又一次地选择相同的元素可能会证明内存饥饿。有可能吗? //尝试从doc中选择myNewElements。

  • 本文向大家介绍去除HTML标签删除HTML示例代码,包括了去除HTML标签删除HTML示例代码的使用技巧和注意事项,需要的朋友参考一下

  • 我实际上正在用Java开发一个文本解析器,有人要求我通过用它解析HTML来增强它。解析器的目的是将被解析的文件分成另外三个文件,一个包含文件中包含的所有单词,一个包括所有句子,另一个包含所有问题。 *.txt部分工作得很好,但我在解析HTML时遇到了一个问题。 我创建了一个扩展名为*.txt的临时文件,并将其在我的文本解析器中传递,但是如果我传递一个带有HTML文件链接的URL,其格式如下所示: