gpt4 book ai didi

java - 查明 HTML 代码是否代表可见文本/图像

转载 作者:行者123 更新时间:2023-12-02 00:06:30 24 4
gpt4 key购买 nike

我有一个包含一些 HTML 代码的字符串。我想知道 HTML 代码是否代表可见文本或图像。我使用 Java 使用以下正则表达式来解决这个问题(我知道你无法使用 RegExps 解析 HTML,但我认为 RegExps 就足够了)。

public static String regex_html_tags_1 = "<\\s*br\\s*[/]?>";
public static String regex_html_tags_2 = "<\\s*([a-zA-Z0-9]+)\\s*([^=/>]+\\s*=\\s*[^/>]+\\s*)*\\s*/>";
public static String regex_html_tags_3 = "<\\s*([a-zA-Z0-9]+)\\s*([^=>]+\\s*=\\s*[^>]+\\s*)*\\s*>\\s*</\\s*\\1\\s*>";

public static String[] HTMLWhiteSpaces = {"&nbsp;", "&#160;"};

使用这些正则表达式的代码对于像这样的字符串效果很好

<h2></h2>

或类似的。但是一个字符串

<img src="someImage.png"></img>

也被认为是空的。

是否有人有比使用 RegExp 更好的主意来查明某些 HTML 代码在浏览器解释时是否实际上代表人类可读的文本?或者您认为我的方法最终会成功吗?

提前非常感谢。

最佳答案

尝试使用JSoup 。它允许您使用 css 选择器(jquery 样式)解析 HTML 文档。

选择所有非空元素的一个非常简单的示例是:

Document doc = Jsoup.connect("http://my.awesome.site.com").get();
Elements nonEmpties = doc.select(":not(:empty)");

成熟的解决方案当然需要一些额外的工作,例如

  • 迭代元素列表,
  • 检查 css 样式(用于显示可见性或大小或覆盖元素)
  • 检查图像的 src 属性
  • 等等

但这绝对是值得的。您将学习一个新框架,发现在 HTML/CSS 中“隐藏”内容的可能性,并且最重要的是停止使用正则表达式进行 HTML 解析;-)

关于java - 查明 HTML 代码是否代表可见文本/图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13746319/

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