Ich versuche, Rom zu verwenden und nur zum Testen versuche ich, einen einfachen RSS-Feed abzurufen und weiterhin "Ungültige XML" -Fehler zu erhalten. Ich implementiere die Lösung in this solution, aber es funktioniert nicht für mich. Was mache ich falsch?Rom HttpClientFeedFetcher gibt "Ungültige XML" Ausnahme
Code:
private void fetchRSSDetails() {
HttpClientFeedFetcher feedFetcher = new HttpClientFeedFetcher();
try {
SyndFeed feed = feedFetcher.retrieveFeed(new URL("http://feeds.bbci.co.uk/news/world/rss.xml"));
System.out.println(feed.getLink());
} catch (IllegalArgumentException | IOException | FeedException | FetcherException e) {
e.printStackTrace();
}
}
Die Ausnahme, die ich bekommen ist:
com.rometools.rome.io.ParsingFeedException: Invalid XML
at com.rometools.rome.io.WireFeedInput.build(WireFeedInput.java:241)
at com.rometools.rome.io.SyndFeedInput.build(SyndFeedInput.java:154)
at com.rometools.fetcher.impl.HttpClientFeedFetcher.retrieveFeed(HttpClientFeedFetcher.java:354)
at com.rometools.fetcher.impl.HttpClientFeedFetcher.getFeed(HttpClientFeedFetcher.java:261)
at com.rometools.fetcher.impl.HttpClientFeedFetcher.retrieveFeed(HttpClientFeedFetcher.java:246)
at com.rometools.fetcher.impl.HttpClientFeedFetcher.retrieveFeed(HttpClientFeedFetcher.java:157)
at com.my.feed.subscriptions.SearchTask.fetchRSSDetails(SearchTask.java:168)
at com.my.feed.subscriptions.SearchTask.doInBackground(SearchTask.java:93)
at com.my.feed.subscriptions.SearchTask.doInBackground(SearchTask.java:54)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Caused by: org.jdom2.JDOMException: http://apache.org/xml/features/disallow-doctype-decl feature not recognized for SAX driver org.apache.harmony.xml.ExpatReader
at org.jdom2.input.SAXBuilder.internalSetFeature(SAXBuilder.java:1025)
at org.jdom2.input.SAXBuilder.configureParser(SAXBuilder.java:976)
at org.jdom2.input.SAXBuilder.buildEngine(SAXBuilder.java:856)
at org.jdom2.input.SAXBuilder.getEngine(SAXBuilder.java:904)
at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1196)
at com.rometools.rome.io.WireFeedInput.build(WireFeedInput.java:234)
... 15 more
Und hier ist, wie ich Rom meinem Android-Projekt hinzuzufügen.
compile ('com.rometools:rome:1.5.1'){
exclude module: 'slf4j-api'
}
compile ('com.rometools:rome-fetcher:1.5.1'){
exclude module: 'slf4j-api'
}
Ich muss etwas einfach fehlt ... Wenn jemand mich auf jede gute Dokumentation für Rom zeigen könnte, die helfen könnten. Außerdem bin ich nicht auf Rom eingestellt und jede andere RSS-Parsing-Bibliothek für Java könnte das tun, wenn Sie etwas leichter zu bedienen empfehlen möchten. Ich muss nur RSS-Feeds parsen.