9月1日开发笔记

来源:互联网 发布:淘宝的渠道管理在哪里 编辑:程序博客网 时间:2024/05/19 21:19

今天折磨了自己一晚上,重新换了一种XML解析方法——PULL解析。之前用SAX解析也感觉还行,就是有一个地方怎么都无解,搜索重名用户只能显示一个结果,本来也能用搜ID的方式将就,可我就是咽不下这口气,被一个程序欺负。
以前也尝试过PULL解析,无奈太多坑放弃了,今天下定决心一定要FIX这个BUG,功夫不负有心人,抽烟抽到肺痛之后,终于搞定了(抽烟有害健康啊)。
下面记录下我跳出的几个天坑。
1、每次循环之后一定要在开始TAG中重新初始化变量集合

case XmlPullParser.START_TAG:                    //获取开始标签的名字                    String startTagName = xmlPullParser.getName();                    if ("User".equals(startTagName)) {                        user=new User(); //这一步非常重要,要配合END_TAG使用                    } 

这里的重新初始化是为了配合末尾的END_TAG中的一个变量重置使用。

2、一次循环完成后要把变量集合置空,否则重新循环之后不会重新覆盖到变量中去

case XmlPullParser.END_TAG:                    String value = xmlPullParser.getName();                    if (value.equals("User") && user != null && userList != null) {                        userList.add(user);                        user = null;  //将user置null,否则无法覆盖                    }                    break;

3、而且在将变量集添加到list中去时,必须要验证条件是否符合,否则同一变量集会添加多次

if (value.equals("User") && user != null && userList != null) 

这一句可以防止出现重复添加的问题

这里附带一篇文章,专门介绍和讲解PULL解析的,写的很详细
http://blog.csdn.net/caesardadi/article/details/8626097

本来这个问题计划放在晚一点解决的,现在感觉开发过程很顺利,一切都超前了,希望明天开始公测的时候服务器要扛得住。1M小水管让我很害怕