`
windforce
  • 浏览: 80291 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

读取RSS历程

阅读更多
无聊想写个读取RSS的东东,思路比较清晰:
⒈用ajax根据url抓取xml数据;
⒉解析数据,提取有用的信息;
⒊将提取出来的数据以合理的方式显示。
本来以为比较简单的,谁知道在第一步就卡住了。首先,ajax存在跨域问题,直接抓取没有权限。那只好后台用URL去取。
可是抓回来的xml文件,只要有中文就是乱码。用new(string.getByte(),"UTF-8")解码,会出现中文部分乱码。抓取代码如下:
简单总结问题原因:读取xml文件流的时候要使用相符合的编码方式。一般xml都是用UTF-8编码,而系统的默认读取应该是GBK
(简体中文)。上一点只是猜想:因为我用new(string.getByte(),"UTF-8"),用的是默认GBK读取,可以解出部分中文。
所以因该在读取xml时候指定编码,下面代码注释1。
解出的代码,如果直接传回ajax处理,会得步到xml对象。细看下最后输出得xml文件,发现最后多了一个"?"。这个问号因该是
用来表明xml结束的。但是dom对xml格式要求和严格,所以直接给回肯定是的不到responseXML.documentElement对象的。去掉后
可以正常解析。
 1public class GetRss extends HttpServlet
 2{
 3    private static final Logger logger = Logger.getLogger(GetRss.class);
 4   
 5    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
 6    {
 7        String url = request.getParameter("RssUrl");
 8        logger.info(url);
 9        try
10        {
11            URL RssUrl = new URL(url);
12            InputStream stream = RssUrl.openStream();
13            BufferedReader in = new BufferedReader(new InputStreamReader(stream),"UTF-8");//1
14            boolean loop = true
15            StringBuffer sb = new StringBuffer(); 
16
17           
18            while (loop) 
19            if ( in.ready() ) 
20            int i=0
21            while (i!= -1
22                i = in.read();
23                sb.append((char)i);
24            }
 
25            loop = false
26            }
 
27            }

28            int len = sb.length();
29            String out = sb.substring(0, len-1);//2
30            response.setContentType("text/xml;charset=utf-8");
31            response.setHeader("Cache-Control""no-cache");
32            
33            PrintWriter pw=new PrintWriter(new OutputStreamWriter(response.getOutputStream(),"UTF-8"));
34            pw.write(out);
35            pw.close();
36        }

37        catch (MalformedURLException e)
38        {
39            
40            logger.error("GetRss.execute Error. " + e.getMessage());
41        }

42        catch (IOException e)
43        {
44            logger.error("GetRss.execute Error. " + e.getMessage());
45        }
     
46    }

47
48}



风之力 2006-10-20 20:09 发表评论
分享到:
评论

相关推荐

    php读取rss示例

    php读取rss示例,读取rss中包含的标题和链接

    JSP读取RSS实例

    在这个实例中,我们看到的是如何使用JSP来读取RSS(Really Simple Syndication)源。 **RSS**是一种XML格式的数据,常用于发布新闻、博客更新等信息,使得用户可以通过RSS阅读器订阅并获取最新内容。RSS文件通常...

    读取rss依赖lib

    为了在Java环境中读取RSS feed,我们需要依赖一些库来处理RSS XML数据。本篇文章将深入探讨如何在Java项目中使用给定的依赖库,包括`rome.jar`、`jdom-1.0.jar`,以及在WebLogic服务器和Linux 5 x64系统上运行的JDK ...

    【ASP.NET编程知识】ASP.NET读取RSS的方法.docx

    ASP.NET 读取 RSS 的方法 ASP.NET 读取 RSS 的方法是指使用 ASP.NET 框架从 RSS 源中提取数据的方法。RSS(Really Simple Syndication)是一种广泛使用的 XML 格式,用于描述和 syndicating 网站的内容。ASP.NET ...

    android-rss, 用于读取 RSS 2.0提要部分的轻量级Android库.zip

    android-rss, 用于读取 RSS 2.0提要部分的轻量级Android库 软件包:org.mcsoxford.rss 许可:Apache许可版本 2.0作者: A 描述:用于读取 RSS 2.0提要部分的轻量级Android库。安装添加为 Maven/gradle依赖项: ...

    Windows 8应用商店程序中如何读取rss

    在Windows 8应用商店程序中读取RSS是一项关键技能,特别是在开发新闻聚合或信息更新类应用时。RSS(Really Simple Syndication)是一种订阅和分享网络内容的格式,它允许用户通过阅读器获取网站的更新而无需直接访问...

    javascript读取RSS数据

    ### JavaScript读取RSS数据 #### 知识点概述 在Web开发中,RSS(Really Simple Syndication)是一种常用的格式,用于聚合多个来源的信息并展示在单一的位置。这使得用户能够订阅多个网站的内容,并在一个地方阅读...

    PHP读取RSS(Feed)简单实例

    标题中的“PHP读取RSS(Feed)简单实例”是指使用PHP编程语言来获取并处理RSS(Really Simple Syndication)源的示例。RSS是一种XML格式的文档,它用于发布经常更新的内容,如博客文章或新闻摘要,使得用户可以通过RSS...

    RSS种子读取资料

    RSS种子读取,频道解析,详细信息读取 根据RSSUrl获取所有List数据(Rome1.0) Rome优点:1.可扩展性好。2.功能强大,除了用来解析RSS,还可以聚合和构造RSS。 Rome缺点:1.兼容性待加强.2.绑定jdom。

    Javascript Ajax异步读取RSS文档具体实现

    ### Javascript Ajax异步读取RSS文档具体实现知识点详解 #### 1. Ajax技术概念 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个页面的情况下,能够更新部分网页的技术。它是一种网页开发技术,...

    RSS发布(生成XML)和读取URL

    在描述中提到的“博文链接”,可能是一个详细的教程,讲解如何使用Java来生成RSS XML文件和读取RSS URL。通常,这会涉及到以下几个步骤: 1. **生成RSS XML**:这通常需要使用Java的XML处理库,如JDOM(Java ...

    php ajax异步读取rss文档数据

    在本文中,我们将深入探讨如何使用PHP和AJAX异步读取RSS文档数据。RSS(Really Simple Syndication)是一种广泛使用的XML格式,用于简洁、快速地发布和同步网站内容。通过这种方式,用户无需直接访问网站就能获取...

    ASP.NET读取RSS的方法

    在***中读取RSS的方法,通常涉及从网络上的RSS源中提取数据,然后将这些数据以适当的方式呈现给用户。具体知识点可以从以下几个方面来阐述: 1. RSS的基本概念和作用:RSS是一种基于XML格式,用于共享新闻标题和...

    MODBUS读取保持寄存器历程

    MODBUS读取保持寄存器例程,帮助朋友们学习LABVIEW通讯

    rss读取

    通过解析和读取RSS feed,用户可以获取到网站的最新更新,无需频繁地手动检查。在本案例中,我们将探讨如何在C#环境下使用类和控件来实现RSS读取的功能,以及如何处理源码和资源。 首先,我们需要理解XML的基本结构...

    5.STM32例程读取DO读取_FSR压力传感器历程_

    在本例程中,我们关注的是如何通过STM32读取FSR(Force Sensitive Resistor,力敏电阻)传感器的数据,从而进行压力检测。FSR传感器是一种能够将施加在其上的力转换为电阻值变化的器件,常用于触控、压力感应等领域...

    RSS是RSS的jar包

    - 读取RSS feed:解析XML文档,提取频道信息和条目详情。 - 创建RSS feed:构造RSS结构,添加频道和条目信息,生成XML输出。 - 更新RSS feed:修改现有RSS feed的内容,如添加、删除或更新条目。 - 集成RSS功能:将...

Global site tag (gtag.js) - Google Analytics