专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Android

android SAX解析,前一个节点的值覆盖了后一个节点的值解决方法

发布时间:2010-05-30 10:57:11 文章来源:www.iduyao.cn 采编人员:星星草
android SAX解析,前一个节点的值覆盖了后一个节点的值
如题:android SAX解析,前一个节点的值覆盖了后一个节点的值。
XML文件如下:
<home>
  <state>1</ state>
  <message>发表评论成功</message>
  ......
</home>

在SAX解析类里:在characters()方法中
System.out.println("curString"+curString);
if(curString!=null&&curTag.equalsIgnoreCase("state")){
commentlist.setState(curString) ;
}else if(curString!=null&&curTag.equalsIgnoreCase("message")){
commentlist.setMessage(curString);
System.out.println(getCommentList().getMessage().toString()+"在characters方法里");
}
但是我在endElement方法里打印
 System.out.println(getCommentList().getState().toString()+"在handlerdefault方法里");

输入来的值却是:
11-28 04:42:06.216: I/System.out(1025): curString1
11-28 04:42:06.216: I/System.out(1025): 1在handlerdefault方法里
11-28 04:42:06.236: I/System.out(1025): curString获取商品评论列表成功
11-28 04:42:06.236: I/System.out(1025): 获取商品评论列表成功在characteers方法里
11-28 04:42:06.236: I/System.out(1025): 1在handlerdefault方法里
11-28 04:42:06.256: I/System.out(1025): 1在handlerdefault方法里

我在在characters()方法中打印message节点时,它的值都已经设定好了,为什么却在endElement方法中
message节点的信息被state节点的信息覆盖了,

请哪位大哥,帮我一下,我弄了两天了,都没有弄好,真的很急,谢谢了



 


------解决方案--------------------
下次代码要贴全,别人怎么知道你commentlist是什么又是怎么声明的,还会有getCommentList()这个方法。
输出语句也不写,我都靠猜呢。
从经验上来讲你的xml就应该改一下,如:
<home>
<comment>
  <state>1</ state>
  <message>发表评论成功</message>
</comment>
......
</home>
解析时声明一个List装Comment,每个comment节点就new一个Comment,然后在下面的节点赋值,
最后加到List里面,输出时遍历这个List就行了
------解决方案--------------------
你代码根本看不出来是怎么解析的所以不敢乱说 但是我大胆的猜测你很有可能是把 list集合对象给写到循环里面创建了。 这样每次循环解析都是一个新的对象 所以你的数据就出现了你说的被覆盖的情况 你自己检查下吧
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: