gpt4 book ai didi

java - 如何在清理文档时删除空文本元素?

转载 作者:行者123 更新时间:2023-12-01 12:37:51 25 4
gpt4 key购买 nike

我的代码使用 jsoup Cleaner 从文档中删除不需要的元素。我注意到在清理操作之后,仍然存在许多空文本节点。由于它们没有子节点,因此删除它们应该可以。

想知道是否有人已经为此实现了解决方案......

文档输出到字符串如下:

            • 文字:
              • 文本:移动应用
          • 文字:
            • 文本:金融产品
            • a:另一个链接
              • 文本:xyz 视觉数据
          • 文字:
        • 文字:
        • 文字:
        • 文字:
        • 文字:
        • 文字:

最佳答案

删除空标签可能很棘手,因为有些标签始终为空(例如 <br/><img/> ),而其他标签即使为空也会影响文档的布局(例如 <p></p> )。更糟糕的是,某些 CSS 配置可能会导致几乎任何类型的标签影响文档布局(例如字体图标)。

如果您可以决定愿意删除哪些元素,则以下操作应该有效:

// Names of the elements to remove if empty
Set<String> removable = ....

// Parse the html into a jsoup document
Document source = Jsoup.parse(myHtml);

// Clean the html according to a whitelist
Document cleaned = new Cleaner(whitelist).clean(source);

// For each element in the cleaned document
for(Element el: cleaned.getAllElements()) {

if(el.children().isEmpty() && !el.hasText()) {
// Element is empty, check if should be removed
if(removable.contains(el.tagName())) el.remove();
}
}

关于java - 如何在清理文档时删除空文本元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25411529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com