2011-08-09 21 views
6

Verilen dize HTML görüntü etiketi URL'si almayı deniyorum. Bunu elde etmek için düzenli bir ifade olmalı. Ama nasıl yapılacağını bilmiyorum. Bana bu konuda birileri yardımcı olabilir mi.android java dt'ten html resim etiketi alın

örn.

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 ? 

Sadece http://xyz.com/par.jpg dize

cevap

7

gelen referans için this soru bakınız istiyorum. Temel olarak kullanmak diyor ki:

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

oldukça kolay bir şekilde yapabilirsiniz. Her ne kadar önemsiz küçük bir ip olsa da, aşırı olabilir.

 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

Ben jsoup kullanın. Kullanımı oldukça kolay ve hafiftir. Bazı sürümler Java 1.5 uyumlu değildi, ancak sorunu çözdüler. Tüm İthalat jsoap ait

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

Frist:

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

Sonra bunu kullanın edebilirsiniz:

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; 
}