jsoup使用选择器语法

/ / jsoup使用选择器语法

以下示例将HTML解析为Document对象之后使用Selector方法操作元素, jsoup支持类似于CSS Selector选择器。

Document document=Jsoup.parse(html);
//a with href
Elements links=document.select("a[href]");

document.select(expression)方法解析给定的CSS Selector表达式,以选择html dom元素。

Document.select 示例

使用您选择的任何编辑器在C:/> jsoup中创建以下Java程序。

JsoupTester.java

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

public class JsoupTester {
   public static void main(String[] args) {
   
      String html = "<html><head><title>Sample Title</title></head>"
         + "<body>"
         + "<p>Sample Content</p>"
         + "<div id='sampleDiv'><a href='www.google.com'>Google</a>"
         + "<h3><a>Sample</a><h3>"
         +"</div>"
         + "<div id='imageDiv' class='header'><img name='google' src='google.png'/>"
         + "<img name='yahoo' src='yahoo.jpg'/>"
         +"</div>"
         +"</body></html>";
      Document document = Jsoup.parse(html);

      //一个带href的标签
      Elements links = document.select("a[href]");

      for (Element link : links) {
         System.out.println("Href: " + link.attr("href"));
         System.out.println("Text: " + link.text());
      }

      //以 .png 结尾的 src 的 img
      Elements pngs = document.select("img[src$=.png]");

      for (Element png : pngs) {
         System.out.println("Name: " + png.attr("name"));
      }

      //div with class=header
      Element headerDiv = document.select("div.header").first();
      System.out.println("Id: " + headerDiv.id());
   
      //a 在 h3 后面
      Elements sampleLinks = document.select("h3 > a"); 

      for (Element link : sampleLinks) {
         System.out.println("Text: " + link.text());
      }
   }
}

使用 javac 编译器编译类,如下所示:

C:\jsoup>javac JsoupTester.java

现在运行JsoupTester以查看输出。

C:\jsoup>java JsoupTester

查看输出。

Href: www.google.com
Text: Google
Name: google
Id: imageDiv
Text: Sample

祝学习愉快! (发现内容有误?请选中要编辑的内容 -> 右键 -> 修改 -> 提交!帮助我们改进教程质量)

精选教程推荐

👇 以下精选教程可能对您有帮助,拓展您的技术视野

大模型在商业分析中的探索实践 -〔徐小磊〕

玩转AI创意写作 -〔于菁健〕

Dubbo源码剖析与实战 -〔何辉〕

乔新亮的CTO成长复盘 -〔乔新亮〕

性能测试实战30讲 -〔高楼〕

研发效率破局之道 -〔葛俊〕

Linux实战技能100讲 -〔尹会生〕

从0开始做增长 -〔刘津〕

朱赟的技术管理课 -〔朱赟〕

📝 好记忆不如烂笔头,留下您的学习笔记吧!

暂无学习笔记,成为第一个分享的人吧!

您的笔记将帮助成千上万的学习者