我花了一天时间研究Android RSS阅读器。
我想在我的应用程序中解析一个非常简单的XML文件。 http://www.sportinglife.com/rss/transfer_wire.xml
此网站上有几个主题回答RSS问题,例如https://stackoverflow.com/questions/1253788/simple-rss-parser-for-android。我已经尝试了所有解决方案,但是在运行代码时我在Eclipse中一直遇到错误。
我从2012年4月找到了最新的IBM Tutorial,它非常好地解释了代码,并且只在一个类文件中提供了解决方案。 http://www.ibm.com/developerworks/xml/library/x-androidxml/index.html
我已逐步遵循本教程,但Eclipse会抛出以下错误:
[Dex Loader] Unable to execute dex: Unexpected magic: [100, 101, 120, 10, 48, 49, 51, 0]
[FootballTransfers] Conversion to Dalvik format failed: Unable to execute dex: Unexpected magic: [100, 101, 120, 10, 48, 49, 51, 0]
以前有人遇到过这个问题吗?我不知道这个错误意味着什么。
当我运行https://stackoverflow.com/questions/1253788/simple-rss-parser-for-android线程中提供的解决方案时,我得到了同样的错误。
答案 0 :(得分:1)
传递输入流而不是网址
@Override
protected Void doInBackground(String... urls) {
arrayList = new NewsParser().getData(NewsMainActivity .this.getResources.openRawResourece(R.xml.feed));
return null;
}
并在getData方法中将参数更改为InputStream。
public List<NewsBean> getData(InputStream istream) {
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
System.out.println("Builder : " + builder);
Document doc = builder.parse(istream);
Document doc = builder.parse(istream);
.....
}