次のURLを使用して、Androidv.17上のMonsterからのRSSフィードを解析しようとしています。
http://rss.jobsearch.monster.com/rssquery.ashx?q=java
コンテンツを取得するには、次の方法でHttpUrlConnectionを使用しています
this.conn = (HttpURLConnection) url.openConnection();
this.conn.setConnectTimeout(5000);
this.conn.setReadTimeout(10000);
this.conn.setUseCaches(true);
conn.addRequestProperty("Content-Type", "text/xml; charset=utf-8");
is = new InputStreamReader(url.openStream());
戻ってくるのは、私が言える限り(そして私もそれを検証した)合法的なRSSです
Cache-Control:private
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:5958
Content-Type:text/xml
Date:Wed, 06 Mar 2013 17:15:20 GMT
P3P:CP=CAO DSP COR CURa ADMa DEVa IVAo IVDo CONo HISa TELo PSAo PSDo DELa PUBi BUS LEG PHY ONL UNI PUR COM NAV INT DEM CNT STA HEA PRE GOV OTC
Server:Microsoft-IIS/7.5
Vary:Accept-Encoding
X-AspNet-Version:2.0.50727
X-Powered-By:ASP.NET
これは次のように始まります(完全なXMLを表示するには、上のURLをクリックしてください)。
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Monster Job Search Results java</title>
<description>RSS Feed for Monster Job Search</description>
<link>http://rss.jobsearch.monster.com/rssquery.ashx?q=java</link>
しかし、私がそれを解析しようとすると:
final XmlPullParser xpp = getPullParser();
xpp.setInput(is);
for (int type = xpp.getEventType(); type != XmlPullParser.END_DOCUMENT; type = xpp.next()) { /* pasing goes here */ }
コードはすぐtype = xpp.next()
に次の例外でチョークします
03-06 09:27:27.796: E/AbsXmlResultParser(13363): org.xmlpull.v1.XmlPullParserException:
Unexpected token (position:TEXT @1:2 in java.io.InputStreamReader@414b4538)
これは、実際には1行目の2番目の文字を処理できないことを意味します<?xml version="1.0" encoding="utf-8"?>
KXmlParser.java(425-426)の問題のある行は次のとおりです。タイプ==TEXTは次のように評価されますtrue
if (depth == 0 && (type == ENTITY_REF || type == TEXT || type == CDSECT)) {
throw new XmlPullParserException("Unexpected token", this, null);
}
何か助けはありますか?パーサーをに設定しようとしましXmlPullParser.FEATURE_PROCESS_DOCDECL = false
たが、それは役に立ちませんでした
私はこれをウェブとここで調査しましたが、役立つものは何も見つかりません