我有一个将xml字符串转换为列表数组的函数。在达到最后一个条件时,它跳转到函数的最后一个返回。for循环里面try catch返回不执行下一行
该代码不执行for循环后的return语句,并且它在for循环后不执行任何行。它只是执行最后的return语句。
功能如下所示
public List<List<String>> UpdateOrderDetailsTable(String xml) {
List<List<String>> ll = new ArrayList<List<String>>();
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
InputStream is = new ByteArrayInputStream(xml.getBytes("UTF-8"));
Document doc = dBuilder.parse(is);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("ProductDetails");
Log.i("1111",Integer.toString(nList.getLength()));
if (nList.getLength() > 0) {
// get all order details
//i=1 for neglect first tag
for (int i = 1; i < nList.getLength(); i++) {
Node nNode = nList.item(i);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
List<String> l = new ArrayList<String>();
l.add(0, eElement.getElementsByTagName("OrderId").item(0).getTextContent());
l.add(1, eElement.getElementsByTagName("ProductId").item(0).getTextContent());
l.add(2, eElement.getElementsByTagName("ProductName").item(0).getTextContent());
l.add(3, eElement.getElementsByTagName("Model").item(0).getTextContent());
l.add(4, eElement.getElementsByTagName("Quantity").item(0).getTextContent());
ll.add(l);
Log.i(Integer.toString(i),eElement.getElementsByTagName("OrderId").item(0).getTextContent());
}
}
return ll;
}
Log.i("2222222222222222222","222222222222222222");
} catch (Exception e) {
Log.e("11111", e.toString());
}
return null;
}
这意味着异常在'for'循环被抛出!调试你的代码,找出哪一行抛出异常! – SudoRahul 2013-05-09 05:59:57
你在日志中看到什么? – BevynQ 2013-05-09 06:01:01
是你的logcat打印任何异常 – Gunaseelan 2013-05-09 06:01:06