调用方法来比较两个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;
}
答案 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()); 打破; } } }