java - avoid null pointer excpetion while parsing the xml -
this xml parse
<metadata> <groupid>org.chromium</groupid> <artifactid>chromedriver-win32</artifactid> <versioning> <release>2.14</release> <versions> <version>2.14</version> </versions> <lastupdated>20150610112540</lastupdated> </versioning> </metadata> while trying parse above xml, getting nullpointerexception though have handled null check. below code
private string getversionfromnode(element eelement) { string version = null; // latest version string tagname = "latest"; try { version = eelement.getelementsbytagname(tagname).item(0).gettextcontent(); // if latest version not available take release // version if ( version.isempty() || null == version || "null" == version) { tagname = "release"; version = eelement.getelementsbytagname(tagname).item(0).gettextcontent(); } } catch (nullpointerexception e) { system.out.println("not able parse " + tagname + " tag " + e.getmessage()); } return version; } when version null, should enter in below block.
if ( version.isempty() || null == version || "null" == version) { tagname = "release"; version = eelement.getelementsbytagname(tagname).item(0).gettextcontent(); } what should solution problem?
your string tagname "latest" , in xml file, there no element named latest , version remains null , therefore nullpointerexception generated when code:
version.isempty() is executed in if statement. because version null. , code tries check if null empty. cannot. , so, nullpointerexception generated here.
to handle situation, first check if version null. secondly check if string version equal string "null". , thirdly check if empty. change sequence of conditions in if statement from:
if ( version.isempty() || null == version || "null" == version) to
if (null == version || "null" == version || version.isempty()) by way, side tip, use:
"null".equals(version) rather
"null" == version
Comments
Post a Comment