0

これが私の問題です。以下のこのコードはノードからすべての子を削除できますが、最後の子が1つ残っていると、nullpointerがスローされます。特に、ポーズの削除に重点を置いています。ポーズが10個ある場合は、9個削除できますが、最後の1個はnullpointerをスローします。

のスクリーンショット ここに画像の説明を入力してください ここに画像の説明を入力してください

これが私のコードです:

 for(int j = 0; j<dom.getElementsByTagName("animation_sequence").getLength(); j++)
 {
   NamedNodeMap attributes = dom.getElementsByTagName("pose").item(j).getAttributes();
   for (int a = 0; a < attributes.getLength(); a++) {
     Node theAttribute = attributes.item(a);
     if(PoseSelectionListener.imageIDOfSelectedPose.equalsIgnoreCase(
                         attributes.item(a).getNodeValue().toString()))
     {
       if(removed==false)
       {
         Node temp = dom.getElementsByTagName("pose").item(j);
         removed=true;

         try{
           temp.getParentNode().removeChild(temp);
         }
         catch(NullPointerException ex) {return;}
       }
     }
4

1 に答える 1

2

「animation_sequence」要素を数えていますが、インデックスを使用して「pose」要素にアクセスしているため、「pose」よりも「animation_sequence」が多い場合は、エラーが発生する可能性があります。親切。

于 2012-12-08T16:55:42.883 に答える