RSS Feed - 在JAVA中的描述标记内解析/提取src图像标记

时间:2016-02-16 14:55:00

标签: java android xml parsing rss

扩展这个问题

How to extract an image src from RSS feed

对于JAVA,已经为ios做了回答,但为了让它在JAVA中运行,没有足够的解决方案。

解析直接标记的RSS源对我来说是已知的,但解析另一个标记内的标记非常复杂,如下所示

    <description>
    <![CDATA[
<img width="745" height="410" src="http://example.com/image.png" class="attachment-large wp-post-image" alt="alt tag" style="margin-bottom: 15px;" />description text
    ]]>
    </description>

如何单独拆分src标签?

2 个答案:

答案 0 :(得分:5)

看看jsoup。我认为这就是你需要的。

修改

private String extractImageUrl(String description) {
    Document document = Jsoup.parse(description);
    Elements imgs = document.select("img");

    for (Element img : imgs) {
        if (img.hasAttr("src")) {
            return img.attr("src");
        }
    }

    // no image URL
    return "";
}

答案 1 :(得分:1)

您可以尝试使用正则表达式来获取值, 看看这个小例子,我希望它可以帮到你。 有关正则表达式的更多信息,您可以在此处找到更多信息。 http://www.tutorialspoint.com/java/java_regular_expressions.htm

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test{

     public static void main(String []args){
        String regularExpression = "src=\"(.*)\" class";
        String html = "<description> <![CDATA[ <img width=\"745\" height=\"410\" src=\"http://example.com/image.png\" class=\"attachment-large wp-post-image\" alt=\"alt tag\" style=\"margin-bottom: 15px;\" />description text ]]> </description>";

      // Create a Pattern object
      Pattern pattern = Pattern.compile(regularExpression);
      // Now create matcher object.
      Matcher matcher = pattern.matcher(html);


   if (matcher.find( )) {
         System.out.println("Found value: " + matcher.group(1) );
        //It's prints Found value: http://example.com/image.png  
    }

     }
}