gpt4 book ai didi

java - JSoup 检查 、 和 标签是否存在

转载 作者:太空宇宙 更新时间:2023-11-04 16:26:07 24 4
gpt4 key购买 nike

您好,我正在使用 JSoup 来解析 HTML 文件。解析后,我想检查文件是否包含标签。我正在使用以下代码来检查,

htmlDom = parser.parse("<p>My First Heading</p><a href=\"www.google.com\">clk</a>");
Elements pe = htmlDom.select("html");
System.out.println("size "+pe.size());

即使不存在 HTML 标记,我得到的输出也是“尺寸 1”。我的猜测是,这是因为 HTML 标记不是强制性的,而是隐含的。 Head 和 Body 标签也是如此。有什么方法可以检查输入文件中是否存在这些标签?

谢谢。

最佳答案

它不返回 1 因为标记是隐式的,但因为它 存在于 Document 对象 htmlDom 解析自定义 HTML 之后。

那是因为 Jsoup 将尝试符合 HTML5 Parsing Rules , 从而添加缺失的元素并尝试修复损坏的文档结构。我敢肯定,如果您还运行以下命令,您会得到 1 作为返回:

Elements pe = htmlDom.select("head");
System.out.println("size "+pe.size());

要在 Jsoup 不尝试清理或使您的 HTML 有效的情况下解析 HTML,您可以改为使用包含的 XMLParser,如下所示,它将按原样解析 HTML。

String customHtml = "<p>My First Heading</p><a href=\"www.google.com\">clk</a>";
Document customDoc = Jsoup.parse(customHtml, "", Parser.xmlParser());

因此,与您在问题评论中的假设相反,这很可能与 Jsoup 相关。

关于java - JSoup 检查 <HTML>、<HEAD> 和 <BODY> 标签是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25190672/

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