Вы работаете с файлом на основе позиции, поэтому, если я вас правильно понимаю, у вас есть структура, которая организована следующим образом:
Зная это, возможно, вы могли бы лучше справиться с индексом в цикле while, а не с помощью цикла for, следующим образом:
int i = 0;
while (i < aNodes.getLength()) {
account = new Account();
account.setAccount(aNodes.item(i).getNodeValue());
account.setBalance(aNodes.item(i+1).getNodeValue());
account.setBalance(aNodes.item(i+2).getNodeValue());
mAccounts.add(account)
i += 3;
}
Я бы также предложил извлечь код заполнения счета в новом методе, таком как «extractAccountFromNodes», а затем вызвать его внутри цикла;таким образом, цикл мог бы стать:
int i = 0;
while (i < aNodes.getLength()) {
mAccount.add(extractAccountFromNodes(aNodes, i));
i += 3;
}
с помощью метода extractAccountFromNodes следующим образом:
private Account extractAccountFromNodes(Nodes nodes, int position) {
account = new Account();
account.setAccount(nodes.item(i).getNodeValue());
account.setBalance(nodes.item(i+1).getNodeValue());
account.setBalance(nodes.item(i+2).getNodeValue());
return account;
}