这几天做了一个解析RSS的小东西时碰到了些问题,在这里纪录一下。

1.先说明一下碰到了问题是什么。
最开始本想做个很简单的小东西,在ANDROID下面用SAX解析RSS,
没想到SAX对SINA博客之类的用了[CDATA]的RSS解析得不完整,很多只解析出了一句。
(ps,不知道SINA这种RSS是不是标准的,也许这居于XML的东西根本就没个标准)
另外,SAX对非标准的RSS解析得更差,
这里的‘非标准RSS'是指没用[CDATA]直接在 description里面放上HTML TAG的那种。

具体的问题描述我引用下面一段话
引用
SAX处理完Element事件后, 紧接着会继续读取,并且交由characters进行处理内容.Character处理普通字符没有任何问题, 不会诱发任何监听事件. 而当遇到< [ ] 等字符时,又会触发一个新的characters事件, 也就是说, 如果你仅仅在 Characters 事件中进行处理保存数据(保存到一个变量中)的话, 是没有任何问题的, 只是遇到的时候, 发生了多次的Characters, 而你的代码上对事件的处理方式是一样的, 都是保存到变量中, 所以,变量中仅仅会保留最后一次赋值的数据. 最后一份数据正常情况下均是\n或者空格. 所以造成了,SAX无法读取CDATA数据的表象.

出自:http://www.lshine.com/index.php/2010/07/sax_cdata/comment-page-1/#comment-7226
这个博客是在刚才在重新搜索时找到的,他的分析和我之前判断的一样。
(这个SAX问题我还是没解决,显示的内容是比以前多了,但还是不完整)

当然,如果具体Parser过程有疑问,可以看这个SAX官方网站,看看原理,看看源码:
http://www.saxproject.org/about.html
(SAX最后一次更新是SAX 2.0.2 (sax2 r3),在27-April 2004…不知道ANDROID里面的是不是这个版本…)


2.再说一下怎么解决问题。
SAX不行就换别的,DOM和PullXmlParser都可以。
这里先介绍一个:
http://zhoujianghai.iteye.com/blog/755749
他的这个比我的好,我看sdk和那些Tutorials快一个月了,写个东西还不能得心应手,
真是差距啊……

人家总结的也好:
引用
1)RSS的文件结构和含义
2)解析xml文件的几种方式
3)android应用的结构和MVC模式
4)activity的生命周期,
activity之间通过intent通信,
handler消息机制,
自定义ListView,
LinearLayout、
RelativeLayout、
FrameLayout布局界面,
WebView显示网页。
android数据存储(SQLite3)的相关操作,
菜单和对话框、Toast的使用,
android的测试驱动, (!)
uses-permission权限配置

这些,我花了一个月都像是在盲人摸象,完全没个纲领去系统的学习。
对我而言,还应该加上多线程之类的比较基础的东西……
真的反思一下了……

最后贴个东西:
1.Android XML Parser Performance,性能分析。留着备用。
http://www.developer.com/ws/article.php/10927_3824221_2/Android-XML-Parser-Performance.htm

2.下面是另一个人的SAX和PullxmlParser的代码,我写的东西太差,就不拿出来丢人现眼了……
http://blog.chinaunix.net/u2/85805/showart_1678985.html

over.

更多相关文章

  1. 实现Android监控任意控件或按键双击事件方法
  2. android 问题分析解析,有你想要的吗
  3. android实现可拖动按钮
  4. Android(安卓)XML解析学习——Pull方式
  5. iOS和Android规范解析——提示框(Toast)对比
  6. Android(安卓)Widget小组件开发(一)——Android实现时钟Widget组件
  7. 从源码角度分析android事件分发处理机制
  8. android PULL 解析XML
  9. 伦敦开发者构建了一个基于 Android(安卓)的坦克

随机推荐

  1. Android(安卓)实现书籍翻页效果----原理
  2. Android开发——Android的消息机制详解
  3. 使用Android(安卓)Studio与Eclipse开发ND
  4. 解决方法:Eclipse的 window-->preferences
  5. android学习之resources资源
  6. AndroidO 图形框架下应用绘图过程——Sur
  7. 【Android(安卓)UI】捕捉输入控件事件
  8. 传智播客Android视频教程——第一天
  9. android eclipse 真机调试
  10. Study on Android【三】--Intent消息传递