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 − 文档对象表示 HTML DOM。
-
Jsoup - 解析给定 HTML 字符串的主类。
-
html - HTML 字符串。
-
link − 元素对象表示代表锚标签的html 节点元素。
-
link.attr() − attr(attribute,value) 方法设置元素属性对应的值。
-
link.addClass() − addClass(class) 方法在 class 属性下添加类。
-
link.removeClass() - removeClass(class) 方法删除类属性下的类。
-
-
描述
元素对象代表一个dom元素,并提供了多种获取dom元素属性的方法。 -
例子
使用您在 C:/> jsoup 中选择的任何编辑器创建以下 Java 程序。JsoupTester.javaimport 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>