私はある種の奇妙な(私には見える)問題に直面しています。NodeList があり、反復処理中に NodeList から要素を削除する必要があります。NodeList には子要素が 1 つしかないため、その要素を削除すると、NodeList には子要素がありません。理想的には、その要素の削除後に for ループが停止するはずですが、これは発生せず、for ループが 2 回目に実行されると、使用可能な子要素がない場合でも、NullPointerException が発生します。
サンプル XML :
<Order OrderNo="1">
<Lines>
<Line LineNo="1"/>
</Lines>
</Order>
サンプルコード:
NodeList nlLine = inDoc.getElementsByTagName("Line");
for(int cntLn = 0 ; cntLn < nlLine.getLength() ; cntLn++){
Element elLn = (Element) nlLine.item(cntLn);
if(//some condition){
elLn.getParentNode().removeChild(elLn);
cntLn--;
}
}
親ノードを取得してから子を削除している行で NullPointer 例外が発生しています。これに関する手がかり/リード/ヘルプはありますか?