设置属性(Set Attributes)
优质
小牛编辑
133浏览
2023-12-01
下面的示例将展示使用方法设置dom元素的属性,批量更新以及在将HTML String解析为Document对象后添加/删除类方法。
语法 (Syntax)
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 String的主类。
html - HTML字符串。
link - 元素对象表示表示锚标记的html节点元素。
link.attr() - attr(attribute,value)方法设置元素属性的对应值。
link.addClass() - addClass(class)方法在class属性下添加类。
link.removeClass() - link.removeClass() class)方法删除class属性下的类。
描述 (Description)
元素对象代表一个dom elment并提供各种方法来获取dom元素的属性。
例子 (Example)
使用您选择的任何编辑器在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());
}
}
验证结果 (Verify the result)
使用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">Google</a>
</div>
---
Outer HTML Before Modification :<div id="imageDiv">
<img name="google" src="google.png">
<img name="yahoo" src="yahoo.jpg">
</div>
Outer HTML After Modification :<div id="imageDiv">
<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>