- Jsoup 教程
- jsoup - 主頁
- jsoup - 概述
- jsoup - 環境設定
- 示例 - 輸入
- jsoup - 解析字串
- jsoup - 解析主體
- jsoup - 載入 URL
- jsoup - 載入檔案
- 示例 - 提取資料
- jsoup - 使用 DOM 方法
- jsoup - 使用選擇器語法
- jsoup - 提取屬性
- jsoup - 提取文字
- jsoup - 提取 HTML
- jsoup - 處理 URL
- 示例 - 修改資料
- jsoup - 設定屬性
- jsoup - 設定 HTML
- jsoup - 設定文字內容
- 示例 - 清理 HTML
- jsoup - 清理 HTML
- jsoup 實用資源
- jsoup - 快速指南
- jsoup - 實用資源
- jsoup - 討論
jsoup - 設定屬性
以下示例將展示將 HTML 字串解析到 Document 物件後使用此方法設定 dom 元素屬性、批次更新以及新增/移除類方法。
語法
Document document = Jsoup.parse(html);
Element link = document.select("a").first();
link.attr("href","www.yahoo.com");
link.addClass("header");
link.removeClass("header");
其中
document - document 物件表示 HTML DOM。
Jsoup - 解析給定 HTML 字串的主要類。
html - HTML 字串。
link - Element 物件表示表示錨標籤的 html 節點元素。
link.attr() - attr(attribute,value) 方法設定元素屬性為相應的 value。
link.addClass() - addClass(class) 方法在 class 屬性下新增 class。
link.removeClass() - removeClass(class) 方法在 class 屬性下移除 class。
描述
Element 物件表示一個 dom 元素,並提供了各種方法來獲取 dom 元素的屬性。
示例
使用你選擇的任何編輯器在 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 id='googleA' href='www.google.com'>Google</a></div>"
+ "<div class='comments'><a href='www.sample1.com'>Sample1</a>"
+ "<a href='www.sample2.com'>Sample2</a>"
+ "<a href='www.sample3.com'>Sample3</a><div>"
+"</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);
//Example: set attribute
Element link = document.getElementById("googleA");
System.out.println("Outer HTML Before Modification :" + link.outerHtml());
link.attr("href","www.yahoo.com");
System.out.println("Outer HTML After Modification :" + link.outerHtml());
System.out.println("---");
//Example: add class
Element div = document.getElementById("sampleDiv");
System.out.println("Outer HTML Before Modification :" + div.outerHtml());
link.addClass("header");
System.out.println("Outer HTML After Modification :" + div.outerHtml());
System.out.println("---");
//Example: remove class
Element div1 = document.getElementById("imageDiv");
System.out.println("Outer HTML Before Modification :" + div1.outerHtml());
div1.removeClass("header");
System.out.println("Outer HTML After Modification :" + div1.outerHtml());
System.out.println("---");
//Example: bulk update
Elements links = document.select("div.comments a");
System.out.println("Outer HTML Before Modification :" + links.outerHtml());
links.attr("rel", "nofollow");
System.out.println("Outer HTML Before Modification :" + links.outerHtml());
}
}
驗證結果
使用 javac 編譯器編譯類,如下所示
C:\jsoup>javac JsoupTester.java
現在執行 JsoupTester 以檢視結果。
C:\jsoup>java JsoupTester
檢視結果。
Outer HTML Before Modification :<a id="googleA" href="www.google.com">Google</a> Outer HTML After Modification :<a id="googleA" href="www.yahoo.com">Google</a> --- Outer HTML Before Modification :<div id="sampleDiv"> <a id="googleA" href="www.yahoo.com">Google</a> </div> Outer HTML After Modification :<div id="sampleDiv"> <a id="googleA" href="www.yahoo.com" class="header">Google</a> </div> --- Outer HTML Before Modification :<div id="imageDiv" class="header"> <img name="google" src="google.png"> <img name="yahoo" src="yahoo.jpg"> </div> Outer HTML After Modification :<div id="imageDiv" class=""> <img name="google" src="google.png"> <img name="yahoo" src="yahoo.jpg"> </div> --- Outer HTML Before Modification :<a href="www.sample1.com">Sample1</a> <a href="www.sample2.com">Sample2</a> <a href="www.sample3.com">Sample3</a> Outer HTML Before Modification :<a href="www.sample1.com" rel="nofollow">Sample1</a> <a href="www.sample2.com" rel="nofollow">Sample2</a> <a href="www.sample3.com" rel="nofollow">Sample3</a>
廣告