0

Eclipse に Java プロジェクトがあり、CNN テクノロジの RSSフィードをダウンロードし、 SAX を使用してフィード内の項目数を解析して取得します。

//download file
URL url = new URL(address);
InputStream is = url.openStream();
FileOutputStream fos = new FileOutputStream("newsfeed.xml");

byte[] buffer = new byte[1024];
int bytesRead = is.read(buffer);
while (bytesRead != -1) {
    fos.write(buffer, 0, bytesRead);
    bytesRead = is.read(buffer);
}

fos.close();
is.close();

//read file
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader reader = parser.getXMLReader();

RSSHandler handler = new RSSHandler();
reader.setContentHandler(handler);

FileInputStream fis = new FileInputStream("newsfeed.xml");
InputSource is = new InputSource(fis);
reader.parse(is);

ただし、このコードを Android で実行すると、行でパーサー例外が発生します。

reader.parse(is);

Androidで変更する唯一のコードは

//download file
FileOutputStream out = context.openFileOutput(FILE_PATH, Context.MODE_PRIVATE);

//read file
FileInputStream stream = context.openFileInput(FILE_PATH);

なぜこれが起こるのですか?またはそれを修正する方法は?

正確なエラーは、「行 1、列 0: 整形式ではありません (無効なトークン)」というメッセージを含む SAXException です。

4

1 に答える 1

0

これを試して..

以下のURLを使用

http://iamvijayakumar.blogspot.in/2012/06/android-rss-feed-reader-example.html

AsyncTask を使用した CustomAdapter を使用した RSS パーサー

于 2013-10-18T05:24:44.813 に答える