我有一个将 xml 字符串转换为列表数组的函数。在达到最后一个条件时,它跳转到函数的最后一个返回。
该代码在 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;
}