这是我的问题,下面的这段代码可以删除节点上的所有子级,但是,当剩下最后一个子级时,它将抛出一个空指针。
特别是,我专注于删除姿势,如果我有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”的数量,那么肯定会出现一些错误类。