android java从字符串中获取html图像标记

时间:2011-08-09 14:51:53

标签: java android html string

我试图从给定的字符串中获取HTML图像标记网址。应该有一些正则表达式来获得它。但不知道该怎么做。任何人都可以帮助我。

e.g。

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

4 个答案:

答案 0 :(得分:7)

请参阅this问题以供参考。基本上它说使用:

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

答案 1 :(得分: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

答案 2 :(得分:2)

全部进口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;
}

答案 3 :(得分: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();
     }