比较两个不同的xml文件时出现空指针异常

时间:2015-03-03 04:55:05

标签: java xml dom arraylist comparison

调用方法来比较两个XML节点。空指针异常正在发生。请帮助我提供宝贵的意见。

for (int i = 0; i < englishTextNodes.getLength(); i++)
{
    for (int j = 0; j < otrLangTextNode.getLength(); j++)
    {
        if( englishTextNodes.item(i).getNodeValue().toString().compareToIgnoreCase(
                 otrLangTextNode.item(j).getNodeValue().toString()) == 0 )
        {
            Results.add(englishTextNodes.item(i).getNodeValue().toString());
            break;
        }
    }
    return Results;
}

2 个答案:

答案 0 :(得分:0)

添加检查以确保.getNodeValue()调用不返回null。如果.getNodeValue()返回null,则调用.toString()将抛出空指针异常。

您可能希望编写一个比较帮助器方法,在比较之前考虑空值,并在if语句中调用它,以便使代码清洁。

答案 1 :(得分:0)

非常感谢您的宝贵意见。我将方法从getNodeValue()更改为getTextContent(),因为getNodeValue()存储了空值,因此发生了异常。现在它对我来说工作正常。以下是更改的代码。

    for (int i = 0; i < englishTextNodes.getLength(); i++)
        {
            for (int j = 0; j < otrLangTextNode.getLength(); j++)
             {
 if((englishTextNodes.item(i).getTextContent().toString().compareToIgnoreCase(otrLangTextNode.item(j).getTextContent().toString()))==0)
                        {

Results.add(&#34; UntranslatedNodes&#34 + englishTextNodes.item(ⅰ).getTextContent()的toString());                                 打破;                             }                         }                     }