先贴一段代码
在这里面有两个id,但不在同一个class里,我是这样解析的:
解析出来的结果是红色字段报空,就是queriesUnshelve.setId(parser.getText())为空,如果我把红色字段去掉,可以得到正确的结果,但是需要的Id值就得不到,请问是怎么解决?
<Status>0</Status>
<Id>0</Id>
<Warehouse>测试仓库</Warehouse>
<Items>
<UnshelvedItem>
<Id>d39ed7ef-131f-48ae-90d8-9622fb74a21c</Id>
<Goods>测试产品一</Goods>
<Number>1</Number>
<Order>100</Order>
</UnshelvedItem>
</Items>
</UnshelvedList>
在这里面有两个id,但不在同一个class里,我是这样解析的:
try {
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_DOCUMENT:
queriesUnshelves = new ArrayList<QueriesUnshelvedInfo>();
break;
case XmlPullParser.START_TAG:
if (parser.getName().equals("UnshelvedItem")) {
queriesUnshelve = new QueriesUnshelvedInfo();
}
else if(parser.getName().equals("Id")){
eventType = parser.next();
queriesUnshelve.setId(parser.getText());
}
else if (parser.getName().equals("Goods")) {
eventType = parser.next();
queriesUnshelve.setGoods(parser.getText()); // NULL?
} else if (parser.getName().equals("Number")) {
eventType = parser.next();
queriesUnshelve.setNumber(parser.getText());
} else if (parser.getName().equals("Order")) {
eventType = parser.next();
queriesUnshelve.setOrder(parser.getText());
}
break;
case XmlPullParser.END_TAG:
if (parser.getName().equals("UnshelvedItem")) {
queriesUnshelves.add(queriesUnshelve);
queriesUnshelve = null;
}
break;
}
eventType = parser.next();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
解析出来的结果是红色字段报空,就是queriesUnshelve.setId(parser.getText())为空,如果我把红色字段去掉,可以得到正确的结果,但是需要的Id值就得不到,请问是怎么解决?