关于wordpress的feed解析

默认地址格式:http://www.xxx.com/?feed=rss2

可以使用 http://feed2js.org/index.php?s=build 生成一段js代码,嵌在网页中,也可以自己部署一个站点服务其他应用,代码地址:https://github.com/cogdog/feed2js,(需要设置一下RSS更新时间)

可惜项目前后端分离,暂时不能直接嵌入这样的代码:

<script language="JavaScript" src="http://feed2js.org//feed2js.php?src=http%3A%2F%2Fnews.maijia.com%2F%3Ffeed%3Drss2&chan=y&desc=1&utf=y"  charset="UTF-8" type="text/javascript"></script>

<noscript>
<a href="http://feed2js.org//feed2js.php?src=http%3A%2F%2Fnews.maijia.com%2F%3Ffeed%3Drss2&chan=y&desc=1&utf=y&html=y">View RSS feed</a>
</noscript>

主要因为使用了document.write();的缘故,所以就改变策略,后端处理返回json吧,在这里使用了一个现有的RSS工具包RSSLibJ

RSSLibJ是一个专门读取和生成RSS的小

巧实用的Java库,大小仅25k,可以从http://sourceforge.net/projects/rsslibj/下载rsslibj-

1_0RC2.jar和它需要的EXMLjar两个文件,然后复制到web/WEB-INF/lib/下。

rsslibj-1_0RC2.jar下载地址:http://sourceforge.net/project/downloading.php?group_id=71153&use_mirror=nchc&filename=rsslibj-1_0RC2.jar&27763931

EXML.jar下载地址:http://rsslibj.cvs.sourceforge.net/rsslibj/rsslibj/lib/EXML.jar?view=log

maven配置:

        <dependency>
            <groupId>rsslibj</groupId>
            <artifactId>rsslibj</artifactId>
            <version>1.0RC2</version>
        </dependency>
        <dependency>
            <groupId>exml</groupId>
            <artifactId>exml</artifactId>
            <version>7.0</version>
        </dependency>

代码片段:

public static JSONArray getRssContent(Integer amount){
        JSONArray ja = new JSONArray();
        try {
            URL url = new URL("http://www.xxx.com/?feed=rss2");
            InputStream inputstream = url.openStream();
            BufferedReader bufferedReader= new BufferedReader(new InputStreamReader(inputstream));
            RSSReader rssReader = new RSSReader();
            rssReader.setReader(bufferedReader);
            Channel channel = rssReader.getChannel();
            List<Item> list = channel.getItems();
            int index = 0;
            for (Item item : list) {
                JSONObject j = new JSONObject();
                j.put("title", item.getTitle());
                j.put("link", item.getLink());
                ja.add(j);
                if((++index)==amount)break;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ja;
    }


转载于:https://my.oschina.net/wnjustdoit/blog/336054

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值