Jsoup官方教程(四)【数据修改】

来源:互联网 发布:手机给电脑共享网络 编辑:程序博客网 时间:2024/06/13 23:01

设置属性的值

问题

在你解析一个Document之后可能想修改其中的某些属性值,然后再保存到磁盘或都输出到前台页面。

方法

可以使用属性设置方法 Element.attr(String key, String value), 和 Elements.attr(String key, String value).

假如你需要修改一个元素的 class 属性,可以使用 Element.addClass(String className)Element.removeClass(String className) 方法。

Elements 提供了批量操作元素属性和class的方法,比如:要为div中的每一个a元素都添加一个rel="nofollow" 可以使用如下方法:

doc.select("div.comments a").attr("rel", "nofollow");

说明

Element中的其它方法一样,attr 方法也是返回当 Element (或在使用选择器是返回 Elements 集合)。这样能够很方便使用方法连用的书写方式。比如:

doc.select("div.masthead").attr("title", "jsoup").addClass("round-box");

设置一个元素的HTML内容

问题

你需要一个元素中的HTML内容

方法

可以使用Element中的HTML设置方法具体如下:

Element div = doc.select("div").first(); // <div></div>div.html("<p>lorem ipsum</p>"); // <div><p>lorem ipsum</p></div>div.prepend("<p>First</p>");//在div前添加html内容div.append("<p>Last</p>");//在div之后添加html内容// 添完后的结果: <div><p>First</p><p>lorem ipsum</p><p>Last</p></div>Element span = doc.select("span").first(); // <span>One</span>span.wrap("<li><a href='http://example.com/'></a></li>");// 添完后的结果: <li><a href="http://example.com"><span>One</span></a></li>

说明

  • Element.html(String html) 这个方法将先清除元素中的HTML内容,然后用传入的HTML代替。
  • Element.prepend(String first)Element.append(String last)方法用于在分别在元素内部HTML的前面和后面添加HTML内容
  • Element.wrap(String around) 对元素包裹一个外部HTML内容。

参见

可以查看API参考文档中 Element.prependElement(String tag)Element.appendElement(String tag) 方法来创建新的元素并作为文档的子元素插入其中。


设置元素的文本内容

问题

你需要修改一个HTML文档中的文本内容

方法

可以使用Element的设置方法::

Element div = doc.select("div").first(); // <div></div>div.text("five > four"); // <div>five &gt; four</div>div.prepend("First ");div.append(" Last");// now: <div>First five &gt; four Last</div>

说明

文本设置方法与 HTML设置 方法一样:

  • Element.text(String text)将清除一个元素中的内部HTML内容,然后提供的文本进行代替
  • Element.prepend(String first)Element.append(String last)将分别在元素的内部html前后添加文本节点。

对于传入的文本如果含有像 <,>等这样的字符,将以文本处理,而非HTML。

原创粉丝点击