0
我想從xml文檔中檢索一些數據,但程序拋出NullPointerException。這是代碼的片段:在java中解析xml文檔
if("Success".equals(nodeValue))
{
NodeList productList = xmlDocument.getElementsByTagName("Products").item(0).getChildNodes(); // gets all childs of Product node
for (int j = 0; j < productList.getLength(); j++)
{
singleProduct = xmlDocument.getElementsByTagName("Product").item(j).getChildNodes();
for(int x = 0; x < singleProduct.getLength(); x++)
{
if(singleProduct.item(x).getNodeType() == Node.ELEMENT_NODE)
{
String nodeName = singleProduct.item(x).getNodeName();
String value = singleProduct.item(x).getChildNodes().item(0).getNodeValue();
System.err.println(x+" "+nodeName+" "+ value);
if ("ProductID".equals(nodeName))
{
id.put(xx, value);
type.put(y, singleProduct.item(x).getChildNodes().item(1).getAttributes().getNamedItem("type").getTextContent());;
xx++;
y++;
}
}
}
}
}
這部分拋出異常:
String value = singleProduct.item(x).getChildNodes().item(0).getNodeValue();
拋出異常由於內部項目(0)方法指數的值。我應該如何知道收集物品的索引?我有類似的程序解析XML文檔,它會拋出異常(NullPOinter),但仍然運行,因爲我發現異常。我試圖在這裏做同樣的事情,但程序不起作用,終止,但我趕上例外。 如何爲item()方法提取正確的索引? 乾杯
NullPointerExceptions的+1不應被捕獲。 – Daniel 2011-04-02 13:07:15
我檢查了長度,它是1.什麼是其他想法? – ucas 2011-04-02 15:34:27
@ucas - 問題根據代碼示例在我看來並不明顯。我可以看到一些紅旗 - 比如多次調用'xmlDocument.getElementsByTagName',但沒有看到示例文檔和最終目標,很難提供幫助。 – McDowell 2011-04-03 21:56:50