Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Rome HttpClientFeedFetcher给出;无效的XML“;例外_Java_Android_Xml_Rss_Rome - Fatal编程技术网

Java Rome HttpClientFeedFetcher给出;无效的XML“;例外

Java Rome HttpClientFeedFetcher给出;无效的XML“;例外,java,android,xml,rss,rome,Java,Android,Xml,Rss,Rome,我试图使用Rome,只是为了测试,我试图获取一个简单的RSS提要,并不断得到“无效XML”错误。我实现了中给出的解决方案,但它对我不起作用。我做错了什么 代码: 我得到的例外是: com.rometools.rome.io.ParsingFeedException: Invalid XML at com.rometools.rome.io.WireFeedInput.build(WireFeedInput.java:241) at com.rometools.rome.io

我试图使用Rome,只是为了测试,我试图获取一个简单的RSS提要,并不断得到“无效XML”错误。我实现了中给出的解决方案,但它对我不起作用。我做错了什么

代码:

我得到的例外是:

 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
下面是我如何将Rome添加到我的Android项目中

compile ('com.rometools:rome:1.5.1'){
    exclude module: 'slf4j-api'
}
compile ('com.rometools:rome-fetcher:1.5.1'){
    exclude module: 'slf4j-api'
}

我一定错过了一些简单的事情。。。如果有人能给我指点一些关于罗马的好文件,也许会有帮助。此外,如果您想推荐一些更易于使用的东西,我不打算使用Rome和任何其他java RSS解析库。我只需要解析RSS提要。

我无法复制您的问题,但您可以尝试为提要获取程序添加自己的用户代理字符串(以防他们重定向某些用户代理):


看。有一个关于如何使用Apache HttpClient获取提要的示例。

我无法复制您的问题,但您可以尝试为提要获取程序添加自己的用户代理字符串(以防它们重定向某些用户代理):

看。有一个关于如何使用ApacheHttpClient获取提要的示例

compile ('com.rometools:rome:1.5.1'){
    exclude module: 'slf4j-api'
}
compile ('com.rometools:rome-fetcher:1.5.1'){
    exclude module: 'slf4j-api'
}
SyndFeed feed = feedFetcher.retrieveFeed("your-rss-reader-user-agent", new URL( "http://feeds.bbci.co.uk/news/world/rss.xml"));