欢迎来到天天文库
浏览记录
ID:35209216
大小:15.89 KB
页数:4页
时间:2019-03-21
《使用rome生成rss格式的xml》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、项目文档里推荐使用rome或rsslib4j来生成rss格式的xml。rome是dev.java.net下的一个开源的项目,是一个“解析、创建、发布RSS和ATOM格式”的工具集,支持RSS0.90,RSS0.91Netscape,RSS0.91Userland,RSS0.92,RSS0.93,RSS0.94,RSS1.0,RSS2.0,Atom0.3,andAtom1.0等众多版本,对rss和atom中的各个模块都进行了很好的封装,“很好很强大”。rsslib4j是gnu下的一个开源项目,“Rsslib4jisasetofJavaAPItoparseandretriveinform
2、ationfromaRSSFeed.ItsupportsRSSversion0.9x,1.0and2.0specificationwithDoublinCoreandSyndicationnamespace”,懒得翻译了,从名字就可以看出来,它只局限于rss相关的功能,相当于是被“阉割”了的rome吧。分别下载了两个项目的文件,看了看文档和API,里面的类基本上都差不多,也不知道用哪个好些。考虑到rome比较大而全,因此考虑使用rome来构建项目的rss生成服务。使用rome需要把rome-0.9.jar加入classpath,除此之外并没有其他的依赖。一般的,创建一个rss格式的x
3、ml文档需要用到如下包:com.sun.syndication.feed.rss顾名思义,这个包里是封装了rss各个部分的对象,如channel,item等等com.sun.syndication.feed.rssClassesCategoryChannelCloudContentDescriptionEnclosureGuidImageItemSourceTextInputcom.sun.syndication.io这个包里的类负责解析,输出等io操作com.sun.syndication.ioInterfacesDelegatingModuleGeneratorDelegatin
4、gModuleParserModuleGeneratorModuleParserWireFeedGeneratorWireFeedParserClassesSAXBuilderSyndFeedInputSyndFeedOutputWireFeedInputWireFeedOutputXmlReaderExceptionsFeedExceptionParsingFeedExceptionXmlReaderException下面是一个我学习rome过程中写的一个小例子:packagedjn.test.rss.rome;importcom.sun.syndication.feed.rss.
5、*;importcom.sun.syndication.io.FeedException;importcom.sun.syndication.io.WireFeedOutput;importjava.util.*;publicclassRssFeedFactory{publicstaticvoidmain(String[]args){//新建Channel对象,对应rss中的/*Channel对象有两个构造器,一个默认的无参构造器用于clone对象,*平时创建Channel对象时只能使用有参构造器Channel(Stringtype)*这个参数t
6、ype很讲究,起初我随便填写了一些字符串,都抛出异常,非法的type*后来逼急了,上网把rome源码搞下来,才搞明白type得是"rss_x.x"这样的*rome的文档里也没有写明,浪费了不少时间研究这个type究竟应该是什么。*/Channelchannel=newChannel("rss_2.0");channel.setTitle("TestRSSchannel'stitle");channel.setDescription("channel的描述");channel.setLink("http://hi.baidu.com/openj/rss");channel.setEnc
7、oding("GBK");//这个list对应rss中的item列表Listitems=newArrayList();//新建Item对象,对应rss中的Itemitem=newItem();item.setAuthor("itemauthorjnduan");item.setTitle("itemtitle");//新建一个Description,它是Item的描述部分Descriptiondescription=newDesc
此文档下载收益归作者所有