这是我的问题,下面的代码可以删除节点中的所有子节点,但是,当剩下最后一个子节点时,它会抛出一个nullpointer。 特别是,我专注于删除姿势,如果我有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;}
}
}
答案 0 :(得分:2)
你正在计算&#34; animation_sequence&#34;元素,但然后使用索引访问&#34;姿势&#34;元素,所以如果有更多&#34; animation_sequence&#34; s而不是&#34; pose&#34; s,你必然会得到某种错误。