How to parse empty node value in Blackberry

2019-03-06 14:32发布

问题:

I am getting the response from the web service as below

<topic id="2"></topic>
<topic id="2">xxx</topic>

while parsing the above throws Null pointer exception .This is my code

speakersnode=speaker.getElementsByTagName("speaker");
for(int k=0;k<speakersnode.getLength();k++)
{
    ids.addElement(((Element)speakersnode.item(k)).getAttribute("id"));
    System.out.println("speaker "+speakersnode.item(k).getFirstChild().getNodeValue());
    vspeakers.addElement(speakersnode.item(k).getFirstChild().getNodeValue());
}

How can i solve the problem.

回答1:

Try this:

speakersnode=speaker.getElementsByTagName("speaker");
for(int k=0;k<speakersnode.getLength();k++)
{
   ids.addElement(((Element)speakersnode.item(k)).getAttribute("id"));
   String info = speakersnode.item(k).getFirstChild().getNodeValue();
   if (info == null){
       info = "";
   }     
   System.out.println("speaker "+ info );
   vspeakers.addElement(info);
}

You also need to learn how to debug. And how to handle exceptions. You will lear how to fix this kind of stuff in seconds



回答2:

I tried the following code it workd

speakersnode=speaker.getElementsByTagName("speaker");
for(int k=0;k<speakersnode.getLength();k++)
{
   String info;
    ids.addElement(((Element)speakersnode.item(k)).getAttribute("id"));
   try{
   info = speakersnode.item(k).getFirstChild().getNodeValue();
  }catch(NullPointerException e){info="";}
  vspeakers.addElement(info);
}