jsoup - Sử dụng Cú pháp Bộ chọn
Ví dụ sau sẽ giới thiệu việc sử dụng các phương thức bộ chọn sau khi phân tích cú pháp một Chuỗi HTML thành một đối tượng Tài liệu. jsoup hỗ trợ các bộ chọn tương tự như Bộ chọn CSS.
Cú pháp
Document document = Jsoup.parse(html);
Element sampleDiv = document.getElementById("sampleDiv");
Elements links = sampleDiv.getElementsByTag("a");
Ở đâu
document - đối tượng tài liệu đại diện cho HTML DOM.
Jsoup - lớp chính để phân tích cú pháp Chuỗi HTML đã cho.
html - Chuỗi HTML.
sampleDiv - Đối tượng phần tử đại diện cho phần tử nút html được xác định bởi id "sampleDiv".
links - Đối tượng Elements đại diện cho nhiều phần tử nút được xác định bởi thẻ "a".
Sự miêu tả
Phương thức document.select (biểu thức) phân tích cú pháp biểu thức bộ chọn CSS đã cho để chọn một phần tử html dom.
Thí dụ
Tạo chương trình java sau bằng bất kỳ trình soạn thảo nào bạn chọn trong C: /> jsoup.
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);
//a with href
Elements links = document.select("a[href]");
for (Element link : links) {
System.out.println("Href: " + link.attr("href"));
System.out.println("Text: " + link.text());
}
// img with src ending .png
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());
// direct a after h3
Elements sampleLinks = document.select("h3 > a");
for (Element link : sampleLinks) {
System.out.println("Text: " + link.text());
}
}
}
Xác minh kết quả
Biên dịch lớp bằng cách sử dụng javac trình biên dịch như sau:
C:\jsoup>javac JsoupTester.java
Bây giờ hãy chạy JsoupTester để xem kết quả.
C:\jsoup>java JsoupTester
Xem kết quả.
Href: www.google.com
Text: Google
Name: google
Id: imageDiv
Text: Sample