2013-05-08 49 views
9

これはあまりにも基本的に聞こえるかもしれませんが、Jsoupを使用してdocから要素を削除するにはどうすればいいですか?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を選択してください。

+0

は '選択()'メソッドは、引数として 'Elements'をとりません - それは取ります* *文字列**! http://jsoup.org/apidocs/org/jsoup/nodes/Element.html#select%28java.lang.String%29 – ollo

+0

ええ、私は疑問に言及しました。 – akshayb

答えて

22

あなたのinital selectに一致する新しい要素を追加しなかった場合は、要素を再度選択する必要はありません。

要素の各要素には親に対する参照があり、remove()メソッドは親にその子要素を削除するように指示します。本質的には

、ちょうどやって:

myNewElements.remove() 

は動作するはずです。要素の上に

+1

それはほとんど例外を示していませんが、私は論理を得ました。ありがとう。 – akshayb

+1

これらの例外を転記すると便利です。たとえそれが機能していても、例外は何か間違っていることを示唆しています。 – ollo

0

ベター・ループと内でそれらを削除します。

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

同様の質問があります:Parse html with jsoup and remove the tag block

+0

if myNewElements.get(0).remove()?それはできますか? – yozawiratama

+1

これは必要ではなく、余分な処理を追加します。削除するルート要素を削除すると、すべての子要素も削除されます。 –