ROME解析 百度 RSS

来源:互联网 发布:深圳潮流网络怎么样 编辑:程序博客网 时间:2024/05/02 00:17
Java代码
  1.   
  2. #   Unless required by applicable law or agreed to in writing, software   
  3. #   distributed under the License is distributed on an "AS IS" BASIS,   
  4. #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   
  5. #   See the License for the specific language governing permissions and   
  6. #   limitations under the License.   
  7. #   
  8. datetime.extra.masks=yyyy-MM-dd HH:mm:ss|yyyy-MM-dd HH:mm  



这个是我在用 ROME时候,因为163和天极时间解析问题 而在ROME发布包里修改后可以的,因为ROME本身提供了这样的支持, 还有就是现在baidu解析上还有问题(在这里感谢下netbus )

如果哪位朋友知道 请指教......


在这里顺便介绍下ROME这个lib:


ROME是一个基于Java的开源程序包。ROME提供了一组Atom/RSS工具类,以使得用Java可以更方便和快捷的来操作大部分Syndication格式数据。目前最新版本为0.9,已经支持的格式包括:RSS 0.90, 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。

ROME包含了一组解析器和生成器,以使得在程序中不仅能够方便的解析各种格式的数据,也可以方便的生成出所指定格式的数据。ROME的解析器和生成器是配合使用的,解析器在解析完源数据后,会生成一个ROME提供的中间对象(SyndFeed),这个对象包括了源数据中的所有信息,然后生成器以这个对象(SyndFeed)作为媒介,输出成程序所指定的数据格式。

使用ROME的解析器对读取一个Feed的操作是非常简单的,解析器可以从一个网址、一个本地文件或文件流中读取转换数据:
Java代码 复制代码
  1.   
  2. URL feedUrl = new URL("http://www.java.com/rss.xml");   
  3. SyndFeedInput input = new SyndFeedInput();   
  4. SyndFeed feed = input.build(new XmlReader(feedUrl));  

此时,就把http://www.java.com/rss.xml这个地址的Feed数据转换成了ROME的对象SyndFeed。要将这个SyndFeed重新转换生成为指定的Syndication格式数据,操作也是比较简单的:

Java代码 复制代码
  1. Writer writer = new FileWriter("./test.xml");   
  2. feed.setFeedType(feedType); // 设定feed输出的格式   
  3. SyndFeedOutput output = new SyndFeedOutput();   
  4. output.output(feed, writer);   
  5. writer.close();  

以上是演示了如何从一个存在的Feed地址里读取解析到再输出生成一个Feed的过程。实际上,在ROME里,还可以直接操作SyndFeed来构造Feed数据:

Java代码 复制代码
  1. // 构造一个SyndFeed新对象   
  2. SyndFeed feed = new SyndFeedImpl();   
  3. // 设置Feed类型   
  4. feed.setFeedType(feedType);   
  5. // 设置Feed基本信息   
  6. feed.setTitle("测试Feed");   
  7. feed.setLink("http://www.thedevlog.com");   
  8. feed.setDescription("测试使用ROME来构造Feed数据");   
  9. // 构造Feed items列表   
  10. List entries = new ArrayList();   
  11. SyndEntry entry;   
  12. SyndContent description;   
  13. // 构造一个新的节点并添加到列表中   
  14. entry = new SyndEntryImpl();   
  15. entry.setTitle("ROME v1.0");   
  16. entry.setLink("http://wiki.java.net/bin/view/Javawsxml/Rome01");   
  17. entry.setPublishedDate(DATE_PARSER.parse("2004-06-08"));   
  18. description = new SyndContentImpl();   
  19. description.setType("text/plain");   
  20. description.setValue("Initial release of ROME");   
  21. entry.setDescription(description);   
  22. entries.add(entry);   
  23. // 设置更多的节点...   
  24. // 将节点列表赋给feed对象   
  25. feed.setEntries(entries);   
  26. // 输出feed   
  27. Writer writer = new FileWriter("./test.xml");   
  28. SyndFeedOutput output = new SyndFeedOutput();   
  29. output.output(feed, writer);   
  30. writer.close();  

整个过程是十分简单的。除了上述功能外,通过ROME还可以将两个或多个Feed合并为一个Feed,将一个Feed拆分为多个Feed等。

更多内容和使用方法,请参考ROME的官方资料:ROME,开发文档教程,API文档。
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 脸上长了很多脂肪粒怎么办 脸上全是油脂粒怎么办 外阴口长了疙瘩怎么办 外阴痒怎么办用什么洗 有子宫内膜增厚怎么办 脸上痘痘特别疼怎么办 眉间和下巴长痘怎么办 眼下方两边长斑怎么办 眼睛下面长斑了怎么办 24岁眼下有细纹怎么办 17岁眼下有细纹怎么办 眼下有细纹怎么办 知乎 22岁眼部有细纹怎么办 20岁眼角有细纹怎么办 20岁眼睛有细纹怎么办 29岁眼下有细纹怎么办 招不干净的东西怎么办 伤口旁边肿了怎么办啊 伤口痂掉了红肿怎么办 屁屁拉屎出血了怎么办 鞋小了一码怎么办妙招 长了毛周角化怎么办 孕妇拉不出来是怎么办 孕妇严重便秘拉不出来怎么办 10小孩肛裂出血怎么办 水痘结痂蹭掉了怎么办 水痘留下的黑印怎么办 水痘痂掉了有坑怎么办 出水痘留下的疤怎么办 宝宝出水痘抓破怎么办 水痘结痂碰掉了怎么办 结痂掉了有坑怎么办 水痘留下的红印怎么办 点痣留下的凹坑怎么办 得水痘留下坑了怎么办 脚磨破了化脓了怎么办 水痘被扣的破了怎么办 水痘睡觉压破了怎么办 水痘破了化脓了怎么办 外阴长水痘破了怎么办 脸上的水痘破了怎么办