我正在尝试解析xml并将其值放在两个arraylist中。但是我在粗线
上获得了数组索引超出绑定的异常我的xml看起来像这样: -
<visitor_info>
<txt_trailer_no_front>23,5</txt_trailer_no_front>
<txt_trailor_no>24,4</txt_trailor_no>
<txt_trailer_no_bol>25,</txt_trailer_no_bol>
</visitor_info>
我的解析代码是:
for(Node n = doc.getFirstChild().getFirstChild().getNextSibling(); n!=null; n = n.getNextSibling().getNextSibling())
{
String str=getElementValue(n);
if(n.getNextSibling()==null)
{
Log.i("info",str+"test");
fillid.add(str.split(",")[0]);
**fillvalues.add(str.split(",")[1]);**//Exception occurs
break;
}
if(!str.equals("") && !str.equals(null))
{
fillid.add(str.split(",")[0]);
fillvalues.add(str.split(",")[1]!=null?str.split(",")[1]:"");
}
}
Log.i("info",fillvalues.size()+"v");
for(int i=0 ;i<fillvalues.size();i++)
{
Log.i("info","1");
for(int j=0;j<values.size();j++)
{
Log.i("info","2");
if(values.get(j).equals(fillid.get(i)))
{
Log.i("info","3");
values.get(j).value=fillvalues.get(i);
break;
}
}
}
}
答案 0 :(得分:1)
试试这种方式
for(Node n = doc.getFirstChild().getFirstChild().getNextSibling(); n!=null; n = n.getNextSibling().getNextSibling())
{
String str=getElementValue(n);
if(n.getNextSibling()==null)
{
Log.i("info",str+"test");
try {
fillid.add(str.split(",")[0]);
} catch (Exception e) {
fillid.add("");
}
try {
fillvalues.add(str.split(",")[1]);
} catch (Exception e) {
fillvalues.add("");
}
break;
}
if(!str.equals("") && !str.equals(null))
{
fillid.add(str.split(",")[0]);
fillvalues.add(str.split(",")[1]!=null?str.split(",")[1]:"");
}
}
答案 1 :(得分:1)
你在这里array index out of bound exception
:
<txt_trailer_no_bol>25,</txt_trailer_no_bol>
原因:
如果您使用str
拆分它,则str.split(",")
只包含一个元素。因此str.split(",")[1]
null 。
您可以使用以下方式:
if(n.getNextSibling()==null)
{
Log.i("info",str+"test");
String[] strarray=str.split(",");
for(int i=0;i<strarray.length;i++){
fillid.add(str.split(",")[i]);
}
break;
}