我迷路了:NullPointerException - 为XLS解析XML

时间:2014-12-12 20:27:52

标签: java xml xml-parsing nullpointerexception spreadsheet

对不起,我一直在努力研究并自己解决这个问题,但是当涉及到Java并且它还没有点击我时,我仍然浑身湿透:

我正在开发一个程序来解析XML文档并将内容转换为电子表格单元格。我已经让它与名字和姓氏一起工作得很好,但是中间名的许多节点在XML中都是空的,这会产生NullPointerException错误 - 我假设因为NULL值会阻止代码工作。我已经尝试了几个不同的语句来检查NULL并在发生这种情况时分配一个空字符串,但我没有尝试过任何工作 - 它要么仍然给出错误,要么导致所有中间名都是空白的(当XML文档中有一些包含中间名称。)

我打算发布一些XML文档的图片,但它不会让我,因为我的代表不够高。因此,我尝试将其作为代码示例'在这里,希望没有拼写错误:

-<PersonInfos>
 -<PersonInfoList>
  -<PersonInfo>
    <FirstName>Kimberly</FirstName>
    <MiddleName>Diana</MiddleName>
    <LastName>Smith</LastName>
   </PersonInfo>
  -<PersonInfo>
    <FirstName>Charlie</FirstName>
    <MiddleName/>
    <LastName>Nelson</LastName>
   </PersonInfo>

我的一些代码 - 没有任何类型的NULL检查。

我需要插入什么类型的IF ... NULL语句?在此先感谢!!

for (int i = 0; i < nodeList.getLength(); i++) {                

    HSSFCellStyle cellStyle = wb.createCellStyle();
    rows = spreadSheet.createRow(i+1);

    HSSFCell cell0 = rows.createCell(0);        
    cell0.setCellValue(((Element) (nodeList.item(i)))       
            .getElementsByTagName("FirstName").item(0)
            .getFirstChild().getNodeValue());

    HSSFCell cell1 = rows.createCell(1);
    cell1.setCellValue(((Element) (nodeList.item(i)))       
                .getElementsByTagName("MiddleName").item(0)
                .getFirstChild().getNodeValue());

    HSSFCell cell2 = rows.createCell(2);        
    cell2.setCellValue(((Element) (nodeList.item(i)))       
            .getElementsByTagName("LastName").item(0)
            .getFirstChild().getNodeValue());
}

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方式:

if(nodeList.item(i).getElementsByTagName("MiddleName").item(0).getFirstChild() == null) {
   here set the value to ""
}