2015-11-01 68 views
1

我的Android RSS閱讀器有點問題。我使用XML解析器從RSS訂閱源獲取標籤,但有時在描述中,我有很多 - 例如<description> <img src="some random url"><table...,e.t.c.我想處理它們,尤其是IMG標記。我可以如何處理所有這些(因爲我在描述中有一堆未解析的代碼)。這裏是我的解析器類中的一個讀取函數。描述中的過程標籤,Android,RSS,XML解析器

private List<RssItem> readFeed(XmlPullParser parser) throws XmlPullParserException, IOException { 
    parser.require(XmlPullParser.START_TAG, null, "rss"); 
    String title = null; 
    String link = null; 
    String description = null; 
    String pubDate = null; 
    String url = null; 
    List<RssItem> items = new ArrayList<RssItem>(); 
    while (parser.next() != XmlPullParser.END_DOCUMENT) { 
     if (parser.getEventType() != XmlPullParser.START_TAG) { 
      continue; 
     } 
     String name = parser.getName(); 
     if (name.equals("title")) { 
      title = readTitle(parser); 
     } else if (name.equals("link")) { 
      link = readLink(parser); 
     } 
     else if(name.equals("description")) { 
      description = readDescription(parser); 
    } 
     else if(name.equals("pubDate")) { 
      pubDate = readPubDate(parser); 
     } 

     if (title != null && link != null) { 
      RssItem item = new RssItem(title, link, description, pubDate, url); 
      items.add(item); 
      title = null; 
      link = null; 
      description = null; 
      pubDate = null; 
      url = null; 
     } 
    } 
    return items; 
} 


    private String readDescription(XmlPullParser parser) throws XmlPullParserException, IOException{ 
    parser.require(XmlPullParser.START_TAG, ns, "description"); 
    String description = readText(parser); 
    parser.require(XmlPullParser.END_TAG, ns, "description"); 
    return description; 
} 

    private String readText(XmlPullParser parser) throws IOException, XmlPullParserException { 
    String result = ""; 
    if (parser.next() == XmlPullParser.TEXT) { 
     result = parser.getText(); 
     parser.nextTag(); 
    } 
    return result; 
} 

預先感謝您的回答

回答

1

我有類似的問題,解的一部分,您可以描述爲一個字符串,並將其傳遞給方法返回字符串數組來表示參數。 jsoup庫可以幫助提取圖像鏈接。仍然不知道是否可以提取其他參數。 這是我到目前爲止所做的。

編輯 這是我的情況的完整的解決方案,我想分析圖像的鏈接和說明文字。

public String[] stripHtml(String html) { 
     Document document = Jsoup.parse(html); 
     //piclink 
     String picLink = document.select("img").first().attr("src"); 
     //description 
     String text = document.select("p").first().text(); 
     text = text.substring(0, text.indexOf('[')); 
     String[] linkAndDescription = {picLink, text}; 

     return linkAndDescription; 
    }