我希望我的程序能够使用 JSoup 在 HTML 上找到特定文本
例如,用户键入“ABC”并使用 JSoup 解析 HTML 元素以检查 HTML 代码中是否存在用户输入,如果不存在则返回错误消息。
我正在查找文本的标记位于下面的这一行
<link rel="canonical" href="https://forum.lowyat.net/user/ABC"/>
对不起,如果我的问题不清楚。不明白的请务必反馈。
我希望我的程序能够使用 JSoup 在 HTML 上找到特定文本
例如,用户键入“ABC”并使用 JSoup 解析 HTML 元素以检查 HTML 代码中是否存在用户输入,如果不存在则返回错误消息。
我正在查找文本的标记位于下面的这一行
<link rel="canonical" href="https://forum.lowyat.net/user/ABC"/>
对不起,如果我的问题不清楚。不明白的请务必反馈。
如果您只需要搜索一种类型的元素,您可以简单地遍历所有元素并检查 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
}
}
好的,根据我们在评论中的小聊天,我假设您正在寻找每个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
}
就是这样!