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

JSoup-基于文本获取标签

林星华
2023-03-14

假设我在一个页面上有3个文本框,定义如下。

<input id="input" type="search" autocomplete="off" role="combobox" placeholder="Search">

<input id="input" type="open" autocomplete="off" role="combobox" placeholder="Open">

<input id="input" type="close" autocomplete="off" role="combobox" placeholder="Close">

我将把值“Open”作为参数传递给JSoup,JSoup应该返回如下数据(这是中间文本框的详细信息)。

<input id="input" type="open" autocomplete="off" role="combobox" placeholder="Open">

JSoup能做到吗?

谢谢您

-阿努普

共有1个答案

单于浩邈
2023-03-14

您需要选择“按属性标记”:

document.select("input[placeholder=Open]")

UPD:要选择标签具有值为“打开”的任何属性,您需要遍历所有属性值:

List<Element> result = document.select("input").stream()
            .filter(input -> hasAttrValue(input, "Open"))
            .collect(Collectors.toList());

HasAttrValue方法:

private boolean hasAttrValue(Element element, String targetValue) {
    for (Attribute attribute : element.attributes()) {
        if (targetValue.equals(attribute.getValue())) {
            return true;
        }
    }
    return false;
}
 类似资料:
  • 主要内容:Jsoup 获取文本 语法,Jsoup 获取文本 说明,Jsoup 获取文本 示例以下示例将展示在将 HTML 字符串解析为 Document 对象后获取文本的方法的使用。 Jsoup 获取文本 语法 document : 文档对象代表 HTML DOM。 Jsoup : 解析给定 HTML 字符串的主类。 html : HTML 字符串。 link : 元素对象表示表示锚标记的 html 节点元素。 link.text() : text() 方法检索元素文本。 Jsoup 获

  • 问题内容: 我正在使用Jsoup库读取URL。该网址的一些标记中包含文本。我可以在每个标签中获取文本吗?请注意,我不要求解析Javascript文件,因为我已经知道JSoup不允许这样做。URL的实际源代码在script标签中包含文本,我需要这样做。 这是源代码中的脚本标签之一: 问题答案: 是。您可以使用Element#getElementsByTag()获得所有标签。每个脚本标签将由DataN

  • 我正在使用Jsoup库读取URL。此url的文本在几个

  • 我需要从如下节点中提取文本: 我需要建立: 仅返回div的所有内容。-不在子元素内的所有内容。两者都错了。迭代子节点会忽略文本节点。 文本节点-某些文本

  • 问题内容: 当我使用jsoup提取数据时遇到一个职位。数据如下: 我想要这样的数据: 我怎样才能做到这一点?谁能帮我? 问题答案: 您可以将html解析为,选择-Element并获取其文本。 例: 输出:

  • 您好,我想得到的值以下的"交联",但我不知道如何做到这一点。 我正在使用Jsoup,下面是我的代码: 这就是我所拥有的: 你有什么想法可以得到价值,而不是“cotation”? 提前谢谢。