2012-09-11 102 views
1

未定義的實體,我在一個Android項目,我要解析國際語言RSS(標題和描述是另一種語言)使用SAX的中間。解析時,我在Logcat中收到以下警告。此外,RSS中的項目都沒有被解析。ParseException的:在SAX解析器

**9-10 07:12:33.598: W/System.err(1238): org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 3921: undefined entity** 
09-10 07:12:33.598: W/System.err(1238):  at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:520) 
09-10 07:12:33.598: W/System.err(1238):  at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:479) 
09-10 07:12:33.598: W/System.err(1238):  at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:318) 
09-10 07:12:33.608: W/System.err(1238):  at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:275) 
09-10 07:12:33.608: W/System.err(1238):  at com.example.news.FeedTableViewActivity$SAXHelper.parseContent(FeedTableViewActivity.java:255) 
09-10 07:12:33.608: W/System.err(1238):  at com.example.news.FeedTableViewActivity$ParseIndividualFeedTask.doInBackground(FeedTableViewActivity.java:217) 
09-10 07:12:33.608: W/System.err(1238):  at com.example.news.FeedTableViewActivity$ParseIndividualFeedTask.doInBackground(FeedTableViewActivity.java:1) 
09-10 07:12:33.608: W/System.err(1238):  at android.os.AsyncTask$2.call(AsyncTask.java:185) 
09-10 07:12:33.608: W/System.err(1238):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 
09-10 07:12:33.608: W/System.err(1238):  at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
09-10 07:12:33.608: W/System.err(1238):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
09-10 07:12:33.618: W/System.err(1238):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
09-10 07:12:33.618: W/System.err(1238):  at java.lang.Thread.run(Thread.java:1019) 

所有其他RSS提要的英文不顯示任何警告,因此其項目被解析。

一個示例XML是here這裏是我的代碼部分:

public void parseUsingSAX(currentUrl){ 
    SAXParserFactory spf = SAXParserFactory.newInstance(); 
    SAXParser sp = spf.newSAXParser(); 
    XMLReader xr = sp.getXMLReader(); 
    xr.setContentHandler(df); 
    InputSource is = new InputSource(currentUrl.openStream()); 
    is.setEncoding("UTF-8"); 
    xr.parse(is); 
} 

任何幫助,將不勝感激!謝謝!

+0

也許,你正面臨着這樣的問題: [Unicode的正則表達式;無效的XML字符] [1] [1]:http://stackoverflow.com/questions/397250/unicode-regex-invalid-xml-characters –

+0

穆斯塔法,我試過,但它給我' MalformedURLException'現在。我讀的字符串響應XML並刪除了所有多餘的字符,但我仍然得到錯誤。儘管謝謝您的幫助! – javaCity

回答

1

的異常告訴你,在你的XML,你正在分析存在的線1列/字符3921.

一個問題,我也有類似的問題,這是通過使用虛假代碼頁引起的。

看一看的地方,那裏的異常點你,如果是你期待的人物。