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;
}