这是我的问题,下面的这段代码可以删除节点上的所有子级,但是,当剩下最后一个子级时,它将抛出一个空指针。
特别是,我专注于删除姿势,如果我有10个姿势,则可以删除9个姿势,但最后一个姿势将抛出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;}
       }
     }

最佳答案

您正在计算“ animation_sequence”元素,但是随后使用索引访问“ pose”元素,因此,如果“ animation_sequence”的数量多于“ pose”的数量,那么肯定会出现一些错误类。

07-26 06:30