这几天做了一个解析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.
分享到:
相关推荐
解析代码示例: import net.xfok.rss.parser.Feed; import net.xfok.rss.parser.Rss; ...... String url="http://www.xfok.net/news/rss.xml"; Rss rss=new rss(url); List<Feed> feeds=rss.getFeeds(); ...... 欢迎...
NULL 博文链接:https://phenom.iteye.com/blog/668238
一个基于新浪RSS的android RSS阅读器源码 虽然不成熟 但是基本功能已经实现 可以学习学习
rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET rss阅读器与 XML解析 XML RSS 阅读器 Winfom ASP.NET ...
新浪RSS 新闻阅读器源码啊 android
一杯库,用于解析Android的RSS。 还可以作为ConverterFactory用于翻新和加油分析RSS RSS解析器,适用于android在整个咖啡店中简单,简洁,可扩展的RSS解析器。 它可以从RSS文章中捕获这些信息:标题描述链接发布日期...
原创Demo 解析新浪国际新闻rss的标题,并显示在表格中 其它内容在rssList里面的字典里面。
android平台上简单的新浪RSS阅读器,基本功能阅读文字新闻
Android RSS Parser []() []() Library to parse RSS easily and efficiently. > Basically, making the repeated task of parsing the feed easy. Install Add it in your root build.gradle at the end of ...
javascript 解析 rss 实例 订阅 xml
介绍了如何解析rss的方法 附加例子,可直接使用
原创 自己写的源代码 导入即可用 Android 应用程序开发技术 rss阅读器实例 实现通过Rss地址阅读到新闻 网页等内容 可自己添加Rss地址 并保存至数据库 功能强大
Android开发实例:rss阅读器 源码
Android软件RSS阅读器源代码.......
Android综合案例——RSS阅读器实源代码+讲解
Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例
Android平台下的RSS阅读器,涉及的内容比较多,是练手的好项目!!
Rome是为RSS聚合而开发的一个框架,让你可以快速的开发基于java的RSS阅读,发布器,支持 RSS 0.91 Netscape RSS 0.91 Userland RSS 0.92 RSS 0.93 RSS 0.94 RSS 1.0 RSS 2.0 Atom 0.3 Atom 1.0
VC写的RSS解析引擎,完全免费;支持RSS0.9X、RSS1.0、RSS2.0及ATOM规范;支持频道下载;支持所有中文网页;同步/异步解析;智能转换;定时自动刷新;多任务;不需要.net或java环境的支持等等。采用COM组件,适用于...
新浪rss阅读器android源码,大家学习android的案例