java rss lib 评测

NLP论文图谱系统:用Neo4j构建可推理的语义关系网络 在自然语言处理领域,面对arXiv日均数十篇论文的信息过载,传统关键词检索已无法支撑技术选型与演进分析。知识图谱通过建模实体(如模型架构、数据集、评估指标)及其语义关系(如‘extends’‘benchmarks_on’),实现从文档匹配到关系推理的跃迁。其核心价值在于揭示技术血缘、识别隐性共识、预警集成风险——例如自动发现‘adapter’与‘LoRA’在参数更新机制上的互补性,或定位‘zero-shot’声明与实际微调样本间的矛盾。该范式正被算法工程师用于快速复现、高校导师用于教学演进图谱、CTO用于技 阅读详情

原文链接:http://blog.youkuaiyun.com/zhaozexin/archive/2005/02/06/282333.aspx?Pending=true

前两天上新浪,看到新浪 RSS 频道开通,不容易啊,等了这么久。
    
    我的目标是做一个简单的portlet,每次读取新浪的RSS站点显示最新的新闻条目。

    花了一个下午,去sourceforge和google 上搜索 opensource 的 java rss lib,还真有不少(顺便提一下,sourceforget的搜索真的很烂)。简单过滤以后,觉得以下三个类库比较有搞头。Rome 、rssutils和rsslib4j。具体的评测如下:

一. Rome
    Rome 是
java.net 上的一个开源项目,现在的版本是0.5。为什么叫Rome呢,按它的介绍上的说法,有个“条条大路通罗马”的意思,有些RSS的意味。Rome可能是 sun 公司从自己某个子项目中抽离出来的,package和类的命名就象j2sdk一样感觉规范。功能上支持RSS的所有版本及 Atom 0.3(Atom是和RSS类似的一种内容聚合的方式)。Rome 本身是提供API和功能实现,其下独立出一个 rome-fetcher 项目,专门用来读取RSS内容。正和我意啊。
    参照 fetcher 上的范例,解析 RSS 相当简单,代码片断如下:

    FeedFetcher fetcher = new HttpURLFeedFetcher();
    SyndFeed feed = fetcher.retrieveFeed(feedUrl);
    System.out.println(feedUrl + " has a title: " + new String(feed.getTitle().getBytes("iso8859-1"), "utf-8") + " and contains "     + feed.getEntries().size() + " entries.");
    for (Iterator iter = feed.getEntries().iterator(); iter.hasNext(); ) {
        SyndEntry entry = (SyndEntry) iter.next();
        System.out.println("<a href=" + entry.getLink() + ">" + entry.getTitle() + "</a>[" + entry.getPublishedDate() + "]");
    }
    
    为什么用  new String(feed.getTitle().getBytes("iso8859-1"), "utf-8")  进行转码,是因为Rome来解析
新浪新闻 RSS的时候试图从 URLConnection 的 header  中得到编码信息,否则总是用 iso8859-1。而新浪的RSS response header 中不包含编码信息,所以要做一番转码。另外还有就是 entry.getPubDate() 也将返回null,因为Rome 用多种pattern 去试图解析时间信息,新浪的时间格式还是符合RFC822的,但是Rome 使用SimpleDateFormat 来解析时间,它忘记了一点,就是 SimpleDateFormat的解析是关联于 Locale 的,所以由于我本地locale是China,SimpleDateFormat的parse方法解析不出英文的时间字符。以上代码前加 Locale.setDefault(Locale.Englisth) 可以搞定,但总觉得不爽。

    如果也不想转码的话,Rome 还提供了一个 XmlReader 的类,通过分析 header 和 xml 内容推断 encoding,修改 HttpURLFeedFetcher 的源码 :

    // 改变 InputStreamReader , 换用 XmlReader
    //InputStreamReader reader = new InputStreamReader(is, ResponseHandler.getCharacterEncoding(connection));
    XmlReader reader = new XmlReader(connection);
    SyndFeedInput input = new SyndFeedInput();
    SyndFeed feed = input.build(reader);

    那么中文不用转码也能正确显示了,不过修改源码后我再解析 
百度新闻 RSS 的时候,底层的JDOM却会抱错说xml 格式不正确。也许Rome的开发者也遇到过这样的问题,所以才没有使用 XmlReader。

二. rssutils
    它是一个工具包,sun 的 develope站点上有文章
RSS Utilities: A Tutorial 专门介绍用taglib 显示RSS内容,附带的可以下载这个工具包,但我从网上搜索不到它的出处,自然也无法看到它的源码。但从反编译的代码来看,也是sun公司内部高手所做,设计精巧,代码简练。实现一个handler,用sax的方式解析xml内容,handler内部用反射和javabean的机制构造RSS元素对象并赋值。代码片断如下:

        RssParser parser = new RssParserImpl();
        Rss rss = parser.parse(new URL(url));
        System.out.println(rss.getChannel().getTitle());
        for (Iterator iter = rss.getChannel().getItems().iterator(); iter.hasNext();) {
            Item item = (Item)iter.next();
            System.out.println("<a href=" + item.getLink() + "</a>" + item.getTitle() + " " + item.getPubDate());
        }

    如上所示,代码也是相当简单,没有转码的需求,时间也正确显示(因为根本没做分析,当字符串直接返回)。但是该工具包并非真正对外公布,代码中有些不严谨的地方,如System.out的输出,很不爽。而且如果 RSS 的 xml内容如果缺少部分不常用元素 ,它也会printStackTrace一大串,服了它了。另外还有一个大问题,就是当我用它解析 百度新闻 的时候,直接就报错:org.xml.sax.SAXParseException: 字符转换错误:“Unconvertible UTF-8 character beginning with 0xb0”。网上查了查,可能是 java 修改过的 UTF-8 和标准 UTF-8 些微不兼容导致。详情参看
Java 平台中的增补字符 一文。

三.  rsslib4j
    rsslib4j 是 sourceforget 上的项目,主页是
http://sourceforge.net/projects/rsslib4j,现在最新的版本是0.2,才0.2,可是开发状态却已经是稳定产品化了。同样支持所有RSS版本。
    rsslib4j 解析 RSS 的方式和 rssutils 一样,我看了看源码,设计比较简单,代码可读性一般,大量使用if。代码片断如下:

        RSSHandler hand = new RSSHandler();
        RSSParser.parseXmlFile(new URL(url), hand, false);
        RSSChannel ch = hand.getRSSChannel();
        System.out.println(ch.toString());
        LinkedList lst = hand.getRSSChannel().getItems();
        for (int i = 0; i < lst.size(); i++) {
            RSSItem itm = (RSSItem) lst.get(i);
            System.out.println(itm.toString());
       }

    看起来也是相当清晰易懂,执行结果也和rssutils一样,不过用它来解析 百度新闻 却不会出现 rssutils 的utf-8编码错误,真是奇怪,两者都是调JAXP的 SAXParser 。不过它的代码也有bug,不能解析出 channel 的一些信息,查看源码,有点简单逻辑错误,修正后解决。想写封email给项目开发者可惜英文不行,通过cvs去commit一下也嫌麻烦,作罢。

总结

Rome:
优 - 1)可扩展性好,有前途。2)功能强大,除了用来解析RSS,还可以聚合和构造RSS。
劣 - 1)兼容性待加强,2)绑定jdom。为什么不喜欢 jdom呢,因为它api 老变,还很绝,搞得不兼容。

rssutils:
优 - 1)代码设计精妙,值得学习。2)附带 taglib 实现,直接可在 jsp 中应用。
劣 - 1)没有源码。 2)兼容性有待加强。 3)功能较弱,只能用来解析RSS,没有聚合和构造RSS功能。

rsslib4j:
优 - 1)简单有效,体积小。2)兼容性不错。
劣 - 1)有小bug。2)功能较弱,只能用来解析RSS,没有聚合和构造RSS功能。

编辑选择: rsslib4j
我只用来读读新浪新闻,rsslib4j 够用就好,不过要自己修改和编译源码。

2020轻量级Linux发行版深度横评与实战调优指南 轻量级Linux发行版指在有限硬件资源(如4GB内存、机械硬盘、低功耗CPU)下仍能保持高响应性与稳定性的操作系统变体,其核心原理在于精简服务依赖、重构初始化流程(如用runit替代systemd)、优化图形栈(如LXQt/Openbox)及定制内核配置。技术价值体现在延长老旧设备生命周期、降低运维复杂度、提升边缘/嵌入式场景可靠性。典型应用场景包括教育终端、医疗PACS工作站、乡镇信息化设备及系统救援环境。本文基于2020年真实硬件(ThinkPad X220)实测数据,聚焦lightweight设计逻辑 阅读详情

相关推荐

Windows10检查Cuda和cuDNN是否安装成功?

简介:根据上篇博客已经完成了CUDA和cuDNN的安装步骤,完成对其的安装。下面将来检查它们是否安装成功。 1 .首先win+R进入CMD,在命令行输入nvcc -V,如下图所示,则表示cuda已经安装成功。 2 .进入到cuda的安装路径,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite,找到如下两个.exe文件: 首先执行:deviceQuery.exe,查看是否出现如下界面: 然后执行bandwid

jhsignal的博客 14万+

字符转换错误:“Unconvertible UTF-8 character beginning with 0xa1”(行号可能太小)。...

[quote]字符转换错误:“Unconvertible UTF-8 character beginning with 0xa1”(行号可能太小)。[/quote] 遇到错误的情况: [quote]在使用DOM做XML解析时发生些错误。[/quote] 解决过程: 在网上查阅错误关键字,得到一处提示: [quote]编码问题[/quote] 于是查看XML文件,发现将“写成...

jzgl_cadn的专栏 934

86 arduino 电机yl_(八)arduino入门:直流电机控制

一、本节介绍在本实验中,您将学习如何使用驱动芯片L293D和SunFounder Uno板控制小型直流(DC)电机的方向和速度。为了使初学者更容易,我们将让直流电机左右旋转,自动加速和减速。二、材料准备1 *小型直流电机1 * L293D1 * Arduino Uno板1 *面包板1 * USB数据线杜邦线三、原理讲解L293D这是一个非常实用的芯片,可以独立控制两台直流电机。在这个实验中,只有一...

weixin_29163857的博客 3567

java rss lib 评测

    前两天上新浪,看到新浪 RSS 频道开通,不容易啊,等了这么久。        我的目标是做一个简单的portlet,每次读取新浪的RSS站点显示最新的新闻条目。    花了一个下午,去sourceforge和google 上搜索 opensource 的 java rss lib,还真有不少(顺便提一下,sourceforget的搜索真的很烂)。简单过滤以后,觉得以下三个类库比较有搞头。

5998

Delphi 12.3 精简绿色版下载

Delphi精简绿色版基于原版安装,去掉了InterBase、法语、德语、日语,只保留了Delphi Windows 32和Delphi Windows 64桌面开发,其余部分未做任何修改。Delphi精简绿色版不含任何破解,仅供学习和研究,24小时后请自行删除,如需继续使用Delphi,请购买正版。绿色版基于原版安装,未做任何精简和修改。绿色版不含任何破解,仅供学习和研究,24小时后请自行删除,如需继续使用RAD Studio,请购买正版。

全粘工程师 4300

开源数显表

开源数显表,广泛应用于车床、铣床、磨床、镗床、火花机、线切割等。市面上此类液晶数显表多数都是基于此项目。 一、基本配置 硬件 主控:STM32F407VGT6 LCD:群创AT070TN92 显示驱动:RA8875 光栅尺:3 x 输入(X/Y/Z) 串口:1 x MAX3232 继电器:2 x 输出 存储:AT24C64 模拟输入:LM324C 电源:AC 220V 软件 工程版本:Keil 5 STM32库:V1.4.0 图形界面:uCGUI 多语言支持:中文、英文 二、项目文

m0_70934529的博客 435

使用dom4j解析xml文件时遇到一个怪问题

  使用dom4j解析xml文件时遇到一个怪问题。从接口里返回一个xml文件,来解析,xml的编码为gb2312,直接解析流会报org.dom4j.DocumentException: Error on line 1 of document : 字符转换错误:“Unconvertible UTF-8 character beginning with 0xb5”(行号可能太小)。 Neste

穷人飞扬的专栏 2966

从Blender舞步到夜空画卷:基于Pix飞控的无人机编队灯光秀全链路开发实践

本文详细介绍了基于Pixhawk飞控的无人机编队灯光秀全链路开发实践。从Blender三维动画设计、QGroundControl地面站二次开发与MAVLink通信桥接,到PX4飞控的OFFBOARD模式路径控制与LED灯光驱动实现,最后通过Gazebo仿真验证并完成真机组装与首飞。文章为无人机爱好者提供了一套完整的、从创意设计到夜空执行的开源解决方案,重点阐述了多机同步与灯光控制的核心技术挑战与应对策略。

zeta9的博客 585

Java RSS LIB 评测

原文链接:http://blog.youkuaiyun.com/xfworld/article/details/1180158 我的目标是做一个简单的portlet,每次读取新浪的RSS站点显示最新的新闻条目。 花了一个下午,去sourceforge和google 上搜索 opensource 的 java rss lib,还真有不少(顺便提一下,sourceforget的搜索真的很

晨韵风的博客 382

深信服 SANGFOR 设备密码恢复和配置备份恢复

、恢复密码 当我们拿到一台设备要去配置管理的时候,首先是要确认设备的登录IP,其次就是确认设备控制台登录密码。不知情的情况下如何找到设备的登录IP,请参考文档: http://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=9484 下文中提到的关于“网关升级客户端”的一些功能,也请参考此文档。 那么恢复密码,大家都知道有2种方法:U盘恢复密码、交叉线恢复密码。 1、U盘恢复密码 注意:仅恢复admin密码,不影响配置。 U盘恢复密码的前

李先生在闯荡江湖 1万+

微信爬虫服务器,微信文章爬虫使用教程 - 八爪鱼采集器

对于某些用户来说,直接自定义规则可能有难度,所以在这种情况下,我们提供了网页简易模式,网页简易模式下存放了国内一些主流网站爬虫采集规则,在你需要采集相关网站时可以直接调用,节省了制作规则的时间以及精力。微信文章采集下来有很多作用,比如可以将自己行业中最近一个月之内发布的内容采集下来,然后分析文章标题和内容的一个方向与趋势。所以本次介绍八爪鱼简易采集模式下“搜狗公众号”的使用教程以及注意要点。步骤一...

weixin_26712065的博客 3256

Java开源RSS组件包(Java Open Source RSS Lib Packages) http://www.javaeye.com/topic/38486

Java开源RSS组件包(Java Open Source RSS Lib Packages)    * RSSLibJRSSLibJ是一个专门读取和生成RSS的小巧实用的Java库,大小仅25k。    *  RSSLib4JRSSLib4J 是一套用于从RSS Feed解析和检索信息的Java API。它支持RSS version0.9x

woshizoe的专栏 1077

基于matlab目标雷达横截面建模(附源码)

雷达系统依靠目标反射或散射来检测和识别目标。目标反射越强,雷达接收器返回的回波就越大,从而获得更高的信噪比(SNR)和更高的检测可能性。在雷达系统中,从目标反射的能量由雷达横截面(RCS)决定,定义为sigma代表RCS,R是雷达与目标之间的距离,Es是从目标反射的信号的场强,以及Ei是入射到目标上的信号的场强。通常,目标向各个方向散射能量,RCS是入射角,散射角和信号频率的函数。RCS 取决于目标的形状和构建目标的材料。用于RCS的常用单位包括平方米或dBsm。

珞瑜的博客 3083

Java开源RSS组件包(Java Open Source RSS Lib Packages)

 Java开源RSS组件包(Java Open Source RSS Lib Packages) * RSSLibJ RSSLibJ是一个专门读取和生成RSS的小巧实用的Java库,大小仅25k。 * RSSLib4J RSSLib4J 是一套用于从RSS Feed解析和检索信息的Java API。它支持RSS version0.9x ,1.0和2.0规范,Doublin内核和Syn

z507263441的专栏 2805

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Java RSS Lib 对比

一. Rome    Rome 是 java.net 上的一个开源项目,现在的版本是0.5。为什么叫Rome呢,按它的介绍上的说法,有个“条条大路通罗马”的意思,有些RSS的意味。Rome可能是 sun 公司从自己某个子项目中抽离出来的,package和类的命名就象j2sdk一样感觉规范。功能上支持RSS的所有版本及 Atom 0.3(Atom是和RSS类似的一种内容聚合的方式)。Rome 本身是

Lovejava的专栏 1181

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java开源RSS组件包(Java Open Source RSS Lib Packages)(转)

Java开源RSS组件包(Java Open Source RSS Lib Packages) * RSSLibJ RSSLibJ是一个专门读取和生成RSS的小巧实用的Java库,大小仅25k。 * RSSLib4J RSSLib4J 是一套用于从RSS Feed解析和检索信息的Java API。它支持RSS version0.9x ,1.0和2.0规范,Doublin内核和Syndication...

zjut2006的专栏 392

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java开源RSS组件包

Java开源RSS组件包(Java Open Source RSS Lib Packages)     * RSSLibJ RSSLibJ是一个专门读取和生成RSS的小巧实用的Java库,大小仅25k。     *  RSSLib4J RSSLib4J 是一套用于从RSS Feed解析和检索信息的Java API。它支持RSS version0.9x ,1.0和2.0规范,Do...

weiyc_16000 391

RSS读取生成

学习资料:   http://www.itxuexi.com/w3school/rss/rss_syntax.html     Java开源RSS组件包(Java Open Source RSS Lib Packages)     * RSSLibJ RSSLibJ是一个专门读取和生成RSS的小巧实用的Java库,大小仅25k。     *  RSSLib4J RSSLib4J 是一套用于从...

哦嘛咪嘛咪哄~~~ 241

Linux,常用命令,看这篇就够了

linux 常用命令大全

qq_48721706的博客 4万+

2026年AI编程工具选型指南:Copilot平替的本质是信任基建

AI编程助手已从‘有无之争’迈入‘可信可用’新阶段。其底层逻辑是代码生成模型与开发者工作流的深度耦合——既依赖上下文理解、AST分析等基础能力,更考验本地化部署、提示词可控性、执行链路可审计等工程化保障。Trae强调CLI驱动与技能插件透明性,Cursor聚焦IDE内核级Agent闭环,通义灵码构建国产化脱敏合规框架,Windsurf则以持久化上下文图(PCG)突破长思考链瓶颈。这些方案共同指向一个技术共识:真正的‘Copilot平替’不是功能复刻,而是重建人机协作中的确定性与控制感,适用于金融合规、超大规

weixin_30562507的博客 370
上一篇: Java程序员的存储过程
下一篇: 关于“抓网页”的几篇文章
dacula
博客等级 码龄24年 6粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值