解析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)<2012-11-8 上午10时56分08秒 CST>
<2012-11-8 上午10时56分08秒 CST>
在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++; }Atas ialah kandungan terperinci 解析rss问题的总结. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Alat AI Hot
Undress AI Tool
Gambar buka pakaian secara percuma
Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik
AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.
Clothoff.io
Penyingkiran pakaian AI
Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!
Artikel Panas
Alat panas
Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma
SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan
Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa
Dreamweaver CS6
Alat pembangunan web visual
SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
Topik panas
Cara menggunakan PHP dan XML untuk melaksanakan pengurusan dan paparan langganan RSS di tapak web
Jul 29, 2023 am 10:09 AM
Cara menggunakan PHP dan XML untuk melaksanakan pengurusan dan paparan langganan RSS di laman web RSS (Really Simple Syndication) ialah format standard untuk menerbitkan catatan blog, berita, kandungan audio dan video yang kerap dikemas kini. Banyak laman web menyediakan fungsi langganan RSS, membolehkan pengguna mendapatkan maklumat terkini dengan mudah. Dalam artikel ini, kita akan mempelajari cara menggunakan PHP dan XML untuk melaksanakan pengurusan langganan RSS dan fungsi paparan tapak web. Pertama, kita perlu membuat langganan RSS untuk XM
Aplikasi PHP: Dapatkan kandungan langganan rss melalui fungsi
Jun 20, 2023 pm 06:25 PM
Dengan perkembangan pesat Internet, semakin banyak laman web telah mula menyediakan perkhidmatan langganan RSS, membolehkan pengguna mendapatkan kandungan yang dikemas kini dengan mudah daripada laman web tersebut. Sebagai bahasa skrip sebelah pelayan yang popular, PHP mempunyai banyak fungsi untuk memproses langganan RSS, membolehkan pembangun mengekstrak data yang diperlukan dengan mudah daripada sumber RSS. Artikel ini akan memperkenalkan cara menggunakan fungsi PHP untuk mendapatkan kandungan langganan RSS. 1. Apakah RSS? Nama penuh RSS ialah "ReallySimpleSyndication" (disingkat
XML/RSS Dive Deep: Menguasai Parsing, Pengesahan, dan Keselamatan
Apr 03, 2025 am 12:05 AM
Parsing, pengesahan dan keselamatan XML dan RSS boleh dicapai melalui langkah -langkah berikut: Parsing XML/RSS: Parsing RSSFEED Menggunakan modul XML.Etree.Etree.Etree.elementtree Python untuk mengekstrak maklumat utama. Sahkan XML: Gunakan perpustakaan LXML dan skema XSD untuk mengesahkan kesahihan dokumen XML. Pastikan Keselamatan: Gunakan Perpustakaan DefusedXML untuk mencegah serangan XXE dan melindungi keselamatan data XML. Langkah -langkah ini membantu pemaju dengan cekap memproses dan melindungi data XML/RSS, meningkatkan kecekapan kerja dan keselamatan data.
Alat Dokumen RSS: Membina, Mengesahkan, dan Menerbitkan Suapan
Apr 09, 2025 am 12:10 AM
Bagaimana untuk membina, mengesahkan dan menerbitkan RSSFeeds? 1. Membina: Gunakan skrip python untuk menghasilkan RSSFeed, termasuk Tajuk, Pautan, Keterangan dan Tarikh Siaran. 2. Pengesahan: Gunakan feedvalidator.org atau skrip Python untuk memeriksa sama ada RSSFEED mematuhi piawaian RSS2.0. 3. Terbitkan: Muat naik fail RSS ke pelayan, atau gunakan Flask untuk menjana dan menerbitkan RSSFeed secara dinamik. Melalui langkah -langkah ini, anda boleh mengurus dan berkongsi kandungan dengan berkesan.
Integrasi Data XML/RSS: Panduan Praktikal untuk Pemaju & Arkitek
Apr 02, 2025 pm 02:12 PM
Integrasi data XML/RSS boleh dicapai dengan parsing dan menghasilkan fail XML/RSS. 1) Gunakan Python's XML.Etree.ElementTree atau Perpustakaan FeedParser untuk menghuraikan fail XML/RSS dan mengekstrak data. 2) Gunakan ElementTree untuk menjana fail XML/RSS dan secara beransur -ansur menambah nod dan data.
Di luar asas: Ciri -ciri Dokumen RSS Lanjutan
Apr 21, 2025 am 12:03 AM
Ciri -ciri lanjutan RSS termasuk ruang nama kandungan, modul lanjutan, dan langganan bersyarat. 1) Ruang nama kandungan memanjangkan fungsi RSS, 2) modul yang dilanjutkan seperti Dublincore atau iTunes untuk menambah metadata, 3) penyertaan penapis langganan bersyarat berdasarkan keadaan tertentu. Fungsi -fungsi ini dilaksanakan dengan menambahkan unsur -unsur dan atribut XML untuk meningkatkan kecekapan pemerolehan maklumat.
Suapan bangunan dengan XML: Panduan tangan ke RSS
Apr 14, 2025 am 12:17 AM
Langkah -langkah untuk membina RSSFeed menggunakan XML adalah seperti berikut: 1. Buat elemen akar dan tetapkan versi; 2. Tambah elemen saluran dan maklumat asasnya; 3. Tambah elemen kemasukan, termasuk tajuk, pautan dan keterangan; 4. Tukar struktur XML ke rentetan dan outputnya. Dengan langkah -langkah ini, anda boleh membuat RSSFeed yang sah dari awal dan meningkatkan fungsinya dengan menambahkan elemen tambahan seperti tarikh pelepasan dan maklumat pengarang.
Tutorial XML/RSS Advanced: Ace Temuduga Teknikal Anda Seterusnya
Apr 06, 2025 am 12:12 AM
XML adalah bahasa markup untuk penyimpanan dan pertukaran data, dan RSS adalah format berasaskan XML untuk menerbitkan kandungan yang dikemas kini. 1. XML mentakrifkan struktur data, sesuai untuk pertukaran data dan penyimpanan. 2.RSS digunakan untuk langganan kandungan dan menggunakan perpustakaan khas apabila parsing. 3. Apabila parsing XML, anda boleh menggunakan DOM atau SAX. Apabila menjana XML dan RSS, unsur -unsur dan atribut mesti ditetapkan dengan betul.


