Ciao a tutti.
Scusatemi ragazzi se vi disturbo ancora, ma non riesco a capire come risolvere questo problema.
Mi trovo a dover catturare i dati dei file xml/rss delle maggior testate giornalistiche italiane, sui vari canali (twitter, facebook, sito web...).
Da stamattina il mio programma su tutte le pagine twitter crea un eccezione che non riesco a risolvere.
Questo è un esempio di file xml di un canale twitter:
Questo è il pezzo di codice in cui mi si crea l'eccezione:codice:<rss version="2.0"> <channel> <title>Queryfeed | from:@ilG_arts</title> <ttl>10</ttl> <description> Queryfeed searches in Twitter, Google+ and gives you a nice RSS. Enjoy! </description> <generator>queryfeed.net (clojure 1.6.0)</generator> <webmaster>ivan@grishaev.me</webmaster> <item> <link> http://twitter.com/twitter/status/607152473602551808 </link> <guid> http://twitter.com/twitter/status/607152473602551808 </guid> <title>ilGiornale Arts @ilG_arts</title> <category>blog</category> <category>ilG</category> <pubDate>Sat, 06 Jun 2015 11:50:04 +0000</pubDate> <description> [Paolo Giordano] Le pagelle di Amici 14 <a href="http://bit.ly/1IjXHNN">bit.ly/1IjXHNN</a> <a href="https://twitter.com/hashtag/blog">#blog</a> <a href="https://twitter.com/hashtag/ilG">#ilG</a> </description> </item> <item> <link> http://twitter.com/twitter/status/607135733967552512 </link> <guid> http://twitter.com/twitter/status/607135733967552512 </guid> <title>ilGiornale Arts @ilG_arts</title> <category>cultura</category> <category>ilG</category> <pubDate>Sat, 06 Jun 2015 10:43:33 +0000</pubDate> <description> Quei geniali critici anni '30 che "scoprirono" il cinema <a href="http://bit.ly/1ARdbsR">bit.ly/1ARdbsR</a> <a href="https://twitter.com/hashtag/cultura">#cultura</a> <a href="https://twitter.com/hashtag/ilG">#ilG</a> </description> </item> </channel> </rss>
Questa è l'eccezione che viene stampata nella console:codice:RssFeed r=new RssFeed(); Vector<RssFeed> list=new Vector<RssFeed>(); list=r.getList(); Iterator<RssFeed> it = list.iterator(); System.out.println("Inizio cattura dati: "+dataStr+". Attendere."); while (it.hasNext()) { try{ SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); DefaultHandler handler = new myHandler(); URL URL = new URL(r.getLink()); InputStream ism = URL.openStream(); Reader reader = new InputStreamReader(ism,"UTF-8"); InputSource is = new InputSource(reader); is.setEncoding("UTF-8"); parser.parse(is, handler);/* <----questo è il comando che mi genera l'eccezione*/ /*Scrivo i post trovati su un db*/ ((myHandler) handler).insertPostDb(r.getId()); }catch (Exception e){ e.printStackTrace(); }
Ho supposto (ma molto probabilmente sbaglio) che invece di leggere il tag <a href> in un qualche modo mi legge solo <hr>, ma non capisco il perchè!codice:org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 3; Il tipo di elemento "hr" deve terminare con la corrispondente tag finale "</hr>". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(Unknown Source)
Fino a ieri tutto funzionava e andata. Sugli altri xml/rss dei canali diversi da twitter non ho assolutamente problema.
Grazie a chiunque mi risponderà!

Rispondi quotando
