【问题标题】:JSoup Remove ElementsJSoup 删除元素
【发布时间】:2013-05-08 17:06:18
【问题描述】:

尽管这听起来太简单了,但我想问一下如何使用 Jsoup 从文档中删除元素。

我尝试搜索它,但没有成功。

问题来了:

Elements myNewElements = doc.getElementsByAttribute("hello");

//Now I need to perform some other methods on myNewElements before removing.
//Hence..suggested method says,
doc.getElementsByAttribute("hello").remove();

这很好用。但我相信一次又一次地选择相同的元素可能会证明内存不足。有可能吗?

doc.select(myNewElements).remove();

//尝试从doc中选择myNewElements。

【问题讨论】:

标签: java jsoup


【解决方案1】:

如果您没有添加任何与初始选择匹配的新元素,则无需再次选择元素。

elements 中的每个元素都有对其父元素的引用,而 remove() 方法只是告诉父元素删除该子元素。

本质上,只是在做:

myNewElements.remove()

应该可以。

【讨论】:

  • 发布这些例外情况会有所帮助。即使它正在工作,异常也是一个很好的暗示,表明有问题。
【解决方案2】:

更好地循环遍历元素并在其中删除它们:

for( Element element : doc.select(myNewElements) )
{
    element.remove();
}

有一个类似的问题:Parse html with jsoup and remove the tag block

【讨论】:

  • 如果 myNewElements.get(0).remove() 怎么办?可以吗?
  • 这不是必需的,会增加额外的处理。移除要移除的根元素也会移除所有子元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-31
  • 2020-05-30
  • 1970-01-01
相关资源
最近更新 更多