搜索
首页后端开发XML/RSS教程解析rss问题的总结
解析rss问题的总结Apr 24, 2017 pm 04:35 PM
rss

try{ 
   org.dom4j.io.SAXReader saxReader = new org.dom4j.io.SAXReader();
   org.dom4j.Document document = saxReader.read(rssUrl);
   org.dom4j.Element channel = (org.dom4j.Element) document.getRootElement().element("channel");
     int index =0;
           for (java.util.Iterator i = channel.elementIterator("item"); i.hasNext();){ 
            if(index+1>rssTable.Rows.length){
             break;
            } 
             org.dom4j.Element element = (org.dom4j.Element) i.next();
                String title = element.elementText("title");
                String link = element.elementText("link");
                String pubDate = element.elementText("pubDate");
                String source = element.elementText("source");  
                ci.adp.DataRow rssRow = rssTable.getDataRowByIndex(index);
              
                rssRow.setValue("TITLE", title);
                rssRow.setValue("LINK", link);
                rssRow.setValue("PUBDATE", pubDate);
                rssRow.setValue("SOURCE", source); 
                /*
                System.out.println("title标题: " + title);
                System.out.println("link链接: " + link);
                System.out.println("pubDate发布时间: " +pubDate); 
                System.out.println("source来源: " + source);
                */
                index++;  
           }
  }catch (Exception e) { 
   e.printStackTrace();
  }

 折腾了一上午,终于换一种方式搞定了。

 上面这种dom4j方式,在我本机环境(windows+weblogic10+jdk1.6)下没问题,
放到服务器上(linux5.4 x64+weblogic10+jdk1.6)上,始终都报这个错:

[oracle@ablw010215 bin]$ Warning: Caught exception attempting to use SAX to load a SAX XMLReader
Warning: Exception was: java.lang.ClassCastException: com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration
Warning: I will print the stack trace then carry on using the default SAX parser
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration
        at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:199)
        at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:150)
        at org.dom4j.io.SAXHelper.createXMLReader(SAXHelper.java:83)
        at org.dom4j.io.SAXReader.createXMLReader(SAXReader.java:894)
        at org.dom4j.io.SAXReader.getXMLReader(SAXReader.java:715)
        at org.dom4j.io.SAXReader.read(SAXReader.java:435)
        at org.dom4j.io.SAXReader.read(SAXReader.java:321)
        at jsp_servlet._ajax._comm._bbs.__iframearticlecontent._jspService(__iframearticlecontent.java:100)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:35)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
        at ci.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
org.dom4j.DocumentException: SAX2 driver class weblogic.xml.jaxp.RegistryXMLReader does not implement XMLReader Nested exception: SAX2 driver class weblogic.xml.jaxp.RegistryXMLReader does not implement XMLReader
        at org.dom4j.io.SAXReader.read(SAXReader.java:484)
        at org.dom4j.io.SAXReader.read(SAXReader.java:321)
        at jsp_servlet._ajax._comm._bbs.__iframearticlecontent._jspService(__iframearticlecontent.java:99)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:35)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
        at ci.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Nested exception: 
java.lang.ClassCastException: com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration
        at org.dom4j.io.SAXHelper.createXMLReader(SAXHelper.java:98)
        at org.dom4j.io.SAXReader.createXMLReader(SAXReader.java:894)
        at org.dom4j.io.SAXReader.getXMLReader(SAXReader.java:715)
        at org.dom4j.io.SAXReader.read(SAXReader.java:435)
        at org.dom4j.io.SAXReader.read(SAXReader.java:321)
        at jsp_servlet._ajax._comm._bbs.__iframearticlecontent._jspService(__iframearticlecontent.java:100)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:35)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
        at ci.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Nested exception: java.lang.ClassCastException: com.sun.org.apache.xerces.internal.parsers.XIncludeAwareParserConfiguration
        at org.dom4j.io.SAXHelper.createXMLReader(SAXHelper.java:98)
        at org.dom4j.io.SAXReader.createXMLReader(SAXReader.java:894)
        at org.dom4j.io.SAXReader.getXMLReader(SAXReader.java:715)
        at org.dom4j.io.SAXReader.read(SAXReader.java:435)
        at org.dom4j.io.SAXReader.read(SAXReader.java:321)
        at jsp_servlet._ajax._comm._bbs.__iframearticlecontent._jspService(__iframearticlecontent.java:100)
        at weblogic.servlet.jsp.JspBase.service(JspBase.java:35)
        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
        at ci.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:107)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

76963a767648daec2a3ba633be6af136 196b221079040666e3f89e6491d8e40a b382046ee41c398bcec9921d8832c4ff 6bc501c6818cb3f5d42283b4e4649af5 940b43805e9afc81032aa6c833513b7b
76963a767648daec2a3ba633be6af136 196b221079040666e3f89e6491d8e40a b382046ee41c398bcec9921d8832c4ff 6bc501c6818cb3f5d42283b4e4649af5 a4f8b6e3d08b8686c74164db780d09e4

 

在weblogic.xml加配置文件、加lib包等等都不起作用,换成这个就好了(依赖lib在我上传的资源中,完全免费):

try { URL url = new URL(rss); // 读取Rss源 XmlReader reader = new XmlReader(url); System.out.println("Rss源的编码格式为:" + reader.getEncoding()); SyndFeedInput input = new SyndFeedInput(); SyndFeed feed = input.build(reader); // 得到SyndFeed对象,即得到Rss源里的所有信息 List entries
 = feed.getEntries(); // 得到Rss新闻中子项列表 int index =0; for (int i = 0; i < entries.size(); i++) { // 循环得到每个子项信息 if(index+1>rssTable.Rows.length){ break; } SyndEntry entry = (SyndEntry) entries.get(i); /* System.out.println("标题:" + entry.getTitle()); System.out.println("连接地址:"
 + entry.getLink()); SyndContent description = entry.getDescription(); System.out.println("标题简介:" + description.getValue()); System.out.println("发布时间:" + entry.getPublishedDate()); // 以下是Rss源可先的几个部分 System.out.println("标题的作者:" + entry.getAuthor()); */ ci.adp.DataRow
 rssRow = rssTable.getDataRowByIndex(index); rssRow.setValue("TITLE", entry.getTitle()); rssRow.setValue("LINK", entry.getLink()); rssRow.setValue("PUBDATE", entry.getPublishedDate()); rssRow.setValue("SOURCE", entry.getAuthor()); /* // 此标题所属的范畴 List categoryList
 = entry.getCategories(); if (categoryList != null) { for (int m = 0; m < categoryList.size(); m++) { SyndCategory category = (SyndCategory) categoryList .get(m); System.out.println("此标题所属的范畴:" + category.getName()); } } */ index++; /* // 得到流媒体播放文件的信息列表 List
 enclosureList = entry.getEnclosures(); if (enclosureList != null) { for (int n = 0; n < enclosureList.size(); n++) { SyndEnclosure enclosure = (SyndEnclosure) enclosureList .get(n); System.out.println("流媒体播放文件:" + entry.getEnclosures()); } } */ } } catch (Exception
 e) { e.printStackTrace(); }

 

org.dom4j.io.SAXReader saxReader = new org.dom4j.io.SAXReader();org.dom4j.Document document = saxReader.read(rssUrl);org.dom4j.Element channel = (org.dom4j.Element) document.getRootElement().element("channel"); int index =0; for (java.util.Iterator i = channel.elementIterator("item");
 i.hasNext();){ if(index+1>rssTable.Rows.length){ break; } org.dom4j.Element element = (org.dom4j.Element) i.next(); String title = element.elementText("title"); String link = element.elementText("link"); String pubDate = element.elementText("pubDate"); String
 source = element.elementText("source"); ci.adp.DataRow rssRow = rssTable.getDataRowByIndex(index); rssRow.setValue("TITLE", title); rssRow.setValue("LINK", link); rssRow.setValue("PUBDATE", pubDate); rssRow.setValue("SOURCE", source); /* System.out.println("title标题:
 " + title); System.out.println("link链接: " + link); System.out.println("pubDate发布时间: " +pubDate); System.out.println("source来源: " + source); */ index++; }

以上是解析rss问题的总结的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP应用:通过函数获取rss订阅内容PHP应用:通过函数获取rss订阅内容Jun 20, 2023 pm 06:25 PM

随着互联网的迅速发展,越来越多的网站开始提供RSS订阅服务,使得用户可以方便地获取网站更新的内容。而PHP作为一种流行的服务端脚本语言,有着许多用于处理RSS订阅的函数,使得开发人员可以轻松地从RSS源中提取需要的数据。本篇文章将介绍如何使用PHP函数获取RSS订阅内容。一、什么是RSS?RSS全名为“ReallySimpleSyndication”(简

如何用PHP和XML实现网站的RSS订阅管理和显示如何用PHP和XML实现网站的RSS订阅管理和显示Jul 29, 2023 am 10:09 AM

如何用PHP和XML实现网站的RSS订阅管理和显示RSS(ReallySimpleSyndication)是一种用于发布经常更新的博客文章、新闻、音频和视频等内容的标准格式。许多网站都提供了RSS订阅功能,使用户可以方便地获取最新的信息。在本文中,我们将学习如何使用PHP和XML来实现网站的RSS订阅管理和显示功能。首先,我们需要创建一个RSS订阅的XM

如何通过PHP编写一个简单的RSS订阅器如何通过PHP编写一个简单的RSS订阅器Sep 25, 2023 pm 07:05 PM

如何通过PHP编写一个简单的RSS订阅器RSS(ReallySimpleSyndication)是一种用于订阅网站内容的格式,通过订阅器可以获取到最新的文章、新闻和博客等更新。在本文中,我们将使用PHP编写一个简单的RSS订阅器来演示如何获取和显示RSS源的内容。确认环境和准备工作在开始之前,确保你已经有一个PHP环境,并且已经安装了SimpleXML扩

如何使用 PHP 实现 RSS 订阅功能如何使用 PHP 实现 RSS 订阅功能Sep 05, 2023 pm 04:43 PM

如何使用PHP实现RSS订阅功能RSS(ReallySimpleSyndication)是一种用于发布和订阅网站更新内容的格式。使用RSS,用户可以方便地获取他们感兴趣的网站的最新信息,而无需定期访问网站。在本文中,我们将学习如何使用PHP实现RSS订阅功能。首先,我们需要了解RSS的基本结构。一个典型的RSS文档由一个或多个项目(item)组成

使用PHP和XML实现RSS订阅功能使用PHP和XML实现RSS订阅功能Aug 09, 2023 pm 08:13 PM

使用PHP和XML实现RSS订阅功能RSS(ReallySimpleSyndication)是一种用于发布和订阅网站更新内容的标准格式。它以XML为基础,并通过订阅者的RSS阅读器获取最新的内容。在本文中,我们将介绍如何使用PHP和XML来实现简单的RSS订阅功能。创建XML文件首先,我们需要创建一个XML文件来存储我们要发布的内容。假设我们要发布的是文

使用 PHP 爬取其他网站的 RSS 订阅使用 PHP 爬取其他网站的 RSS 订阅Jun 13, 2023 pm 02:55 PM

随着互联网内容的不断丰富和多样化,更多的人开始使用RSS技术来订阅自己感兴趣的博客、新闻等内容,让自己不再错过任何重要信息。而作为Web开发中常用的编程语言之一,PHP也提供了一些强大的函数和工具来帮助我们爬取其他网站的RSS订阅,并将其展示在我们自己的网站上。本文将介绍如何使用PHP来爬取其他网站的RSS订阅,并将其解析为数组或对象,

Microsoft Edge 正在测试一种现代 RSS 源,可让你关注 YouTube 创作者Microsoft Edge 正在测试一种现代 RSS 源,可让你关注 YouTube 创作者May 04, 2023 am 11:25 AM

&lt;ul&gt;&lt;li&gt;&lt;strong&gt;点击进入:&lt;/strong&gt;ChatGPT工具插件导航大全&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;在&lt;em&gt;影响&lt;/em&gt;者、视频博主和内容创作者的时代,每一种关注我们最喜欢的网红的新方法都很&lt;em&gt;重

如何使用PHP开发CMS中的RSS与Feed订阅管理模块如何使用PHP开发CMS中的RSS与Feed订阅管理模块Jun 21, 2023 pm 12:04 PM

随着互联网的快速发展,越来越多的网站采用CMS(ContentManagementSystem)来管理和发布内容。而RSS(RichSiteSummary)和Feed订阅则成为用户获取内容的常用方式。本文将介绍如何使用PHP开发CMS中的RSS与Feed订阅管理模块。一、RSS与Feed订阅的概述RSS与Feed订阅机制是一种常用的内容分发机制,它们

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境