一个RSS频道通常被我们叫做Feed,假如现在我们收集的RSS Feed越来越多,我想分享出去。那么可以做的办法有什么呢?手工把这些Feed的地址一个个copy出来,然后发送吗?这样太麻烦了。 OPML(Outline Processor Markup Language)协议正是用于解决这样问题的。利用OPML协议,我们可以通过阅读器把已经订阅的频道导出为OPML协议规定的格式,从而作为 一个文件分享出去。 Informa中同样提供了对于OPML文件的解析,目前支持的版本是1.1版本。 ★OPMLParser OPMLParser中同样提供了类似FeedParser的多种数据源支持的解析,可以分别从URL,文件,字节流,字符流中读入OPML文件,这个类的核心方法是parse(Dcoument)。
可以看到这个类又是一个中介类,简单地分析协议的版本然后委托给相应的解析器。目前由于OPML协议解析器只支持1.1版本,所以只有一个OPML_1_1_Parser ★OPML_1_1_Parser
OPML协议的结构如下: A.根节点是<opml version="1.x">元素 B.子节点<head>元素,该元素包含了title,dateCreated,dateModified,ownerName等属性 C.子节点<body>元素,该元素包含了0..若干个<outline>元素,该元素是可嵌套的