-2

我希望我的程序能够使用 JSoup 在 HTML 上找到特定文本

例如,用户键入“ABC”并使用 JSoup 解析 HTML 元素以检查 HTML 代码中是否存在用户输入,如果不存在则返回错误消息。

我正在查找文本的标记位于下面的这一行

<link rel="canonical" href="https://forum.lowyat.net/user/ABC"/>

对不起,如果我的问题不清楚。不明白的请务必反馈。

4

2 回答 2

1

如果您只需要搜索一种类型的元素,您可以简单地遍历所有元素并检查 href 标记是否包含用户查询:

Document doc = Jsoup.parse(YOUR_HTML_SOURCE);

String userInput = "ABC";
Elements imports = doc.select("link");
    for (Element e : imports) {
        if (link.tagName("href").toString().contains(userInput)) {
            System.out.println(link.toString()); // this element contains it
        }
    }
于 2013-10-30T12:55:22.793 回答
0

好的,根据我们在评论中的小聊天,我假设您正在寻找每个tag包含href用户输入的属性。为此,简单的单行猫就可以了。一探究竟!

首先,您对 Selector API 文档中的这一行感兴趣:

[attr*=valContaining] 具有名为“attr”的属性和包含“valContaining”的值的元素

好的,让我们去上班吧

Document doc=Jsoup.parse(somePage) // or connect or whatever. The point is that doc is of Document type.
Elements elements=doc.select(String.format("[href*=%s]",userInput));
if(elements.isEmpty()){
    //sorry, there was no such thing on a page
}else{
     // elements is the collection of all tags containing href attribute that contains provided user input
    //do something with those elements
}

就是这样!

于 2013-10-31T07:18:21.583 回答