ドキュメントから要素を削除する必要があるアプリケーションに取り組んでいます。
for(Element d : doc.getAllElements()){
if(condition){
d.getAllElements().remove();
}
}
これを行うと、私は常に得ています
Exception in thread "main" java.lang.IllegalArgumentException: Object must not be null
これまでのところ、if(d != null) などのさまざまな null 条件を確認しましたが、どれも機能していないようです。解決策を教えてください。
更新:条件が満たされたときに要素を削除する2つのループがあるとします。以下のコードは単なる例です。最初の条件でループを中断するなど、これに関する回避策を提案しないでください。論理レベルで理解する必要があります。
for(Element e: doc.getAllElements()){
if(condition1 == true)
{
e.getAllElements().remove();
}
if(condition2 == true){
e.getAllElements().remove();
}
}
両方の条件が満たされた場合、最初のループで要素が削除され、2 番目の条件になると、不正な例外がスローされます。問題を評価しようとしたところ、JSoup は要素が null でないかどうかを内部的にチェックし、null の場合は例外をスローすることがわかりました。シーンを考えてみましょう:
if(e != null) // e is an Element.
上記の null チェックでは、JSoup は e の存在をチェックします。この場合は null であり、したがって、次の単語 != null に到達する前に例外になります。ドキュメントを確認したところ、既存の Validation.notNull(Element) メソッドがあることがわかりましたが、void が返されます。これからブール値の戻り値を取得することは可能ですか? 他に解決策は何ですか?