2011-08-09 92 views
6

我試圖從給定的字符串獲取HTML圖像標記url。應該有一些正則表達式來獲取它。但不知道該怎麼做。誰可以幫我這個事。android java從字符串獲取html圖像標記

例如

I have string like this with <br> some HTML<b>tag</b> 
with <img src="http://xyz.com/par.jpg" align="left"/> image tags in it. 
how can get it ? 

我只想http://xyz.com/par.jpg從字符串

回答

7

請參閱參考this問題。基本上,它說,使用:

String imgRegex = "<img[^>]+src\\s*=\\s*['\"]([^'\"]+)['\"][^>]*>"; 
0

一個XMLPullParser可以做到這一點很容易地。雖然,如果它是一個細小的字符串,它可能是矯枉過正。

 XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
    XmlPullParser xpp = factory.newPullParser(); 

    xpp.setInput(new StringReader ("<html>I have string like this with <br> some HTML<b>tag</b> with <img src=\"http://xyz.com/par.jpg\" align=\"left\"/> image tags in it. how can get it ?</html>")); 
    int eventType = xpp.getEventType(); 
    while (eventType != XmlPullParser.END_DOCUMENT) { 
     if(eventType == XmlPullParser.START_TAG && "img".equals(xpp.getName()) { 
      //found an image start tag, extract the attribute 'src' from here... 
     } 
     eventType = xpp.next(); 
    } 
3

我用jsoup。它很容易使用和輕量級。有些版本不兼容Java 1.5,但看起來他們解決了這個問題。

String html = str; 
Document doc = Jsoup.parse(html); 
Elements pngs = doc.select("img[src$=.png]"); // img with src ending .png 
1

弗里斯特所有進口jsoap的:

compile group: 'org.jsoup', name: 'jsoup', version: '1.7.2' 

那麼你可以使用這個:

private ArrayList pullLinks(String html) { 
    ArrayList links = new ArrayList(); 
    Elements srcs = Jsoup.parse(html).select("[src]"); //get All tags containing "src" 
    for (int i = 0; i < srcs.size(); i++) { 
     links.add(srcs.get(i).attr("abs:src")); // get links of selected tags 
    } 
    return links; 
}