0

这是我的问题,下面的代码可以从节点中删除所有子节点,但是,当剩下最后一个子节点时,它会抛出一个空指针。特别是我重点删除pose,如果我有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;}
       }
     }
4

1 回答 1

2

您正在计算“animation_sequence”元素,但随后使用索引来访问“pose”元素,因此如果“animation_sequence”的数量多于“pose”的数量,您一定会得到一些错误种类。

于 2012-12-08T16:55:42.883 回答