从Android中的html字符串中获取<img/>

时间:2015-11-12 12:48:42

标签: android html string

我有一个html字符串。我想从标签中提取src属性。我在&#34; summaryContent&#34;中获得了html字符串。 ,现在我想要它finf并返回src。如果这个字符串包含两个或三个标记,那么它应该找到所有&#34; src&#34;它的。

for (int i = 0; i < contents.size(); i++) {
                if (contents.get(i).summary != null) {
                    summaryContent = contents.get(i).summary; // There is only one time this condition is true
                } else {
                    continue;
                }

这是我在摘要内容

中得到的内容
<ol start="7">
<li>
<h3><strong>Charlotte Casiraghi</strong></h3>
</li>
</ol>
<strong>Family Fortune:  </strong>$1 billion
<img class="size-full wp-image-346 aligncenter" src="http://rarelyknownthings.com/wp-content/uploads/2015/10/Picture1.png" alt="Picture1" width="943" height="1350" />
&nbsp;
&nbsp;
Charlotte Marie Pomeline Casiraghi is the second child of Caroline Princess of Hanover, Princess of Monaco and Stefano Casiraghi, an industrialist. She is eight in line to the throne of Monaco. Charlotte is a published writer and magazine editor.
<img class="aligncenter" src="http://rarelyknownthings.com/wp-content/uploads/2015/10/f762a5ca08aab85785f48c8425f089d7.png" alt="" />
Charlotte and her two brothers were born in the Mediterranean Principality of Monaco. When she was four years old, her father was killed in a boating accident. After his death, Princess Caroline moved the family to the Midi village of Saint-Rémy-de-Provence in France, with the intention of minimizing their exposure to the press.
<!--nextpage-->
<ol start="6">
<li>
<h3><strong>Hind Hariri</strong></h3>
</li>
</ol>

3 个答案:

答案 0 :(得分:3)

您可以使用正则表达式提取它:

Pattern p = Pattern.compile("src\\s*=\\s*['\"]([^'\"]+)['\"]");
Matcher m = p.matcher(summaryContent);
if (m.find()) {
  String srcResult = m.group(1);
}

<强>解释

  • src字面匹配字符src(区分大小写)

  • \s*匹配任何空格字符[\ r \ n \ t \ f]

  • Quantifier: *在零和无限次之间,尽可能多次,根据需要回馈[贪婪]

  • =匹配字符=字面

  • \s*匹配任何空格字符[\ r \ n \ t \ f]

  • Quantifier: *在零和无限次之间,尽可能多次,根据需要回馈[贪婪]

  • ['"]匹配下面列表中的单个字符

  • '"列表中的单个字符“字面意思(区分大小写)

  • 1st Capturing group ([^'"]+)匹配下面列表中不存在的单个字符

  • Quantifier: +在一次和无限次之间,尽可能多次,根据需要回馈[贪婪]

  • '"列表中的单个字符“字面意思(区分大小写)

  • ['"]匹配下面列表中的单个字符

  • '"列表中的单个字符“字面意思(区分大小写)

答案 1 :(得分:0)

我建议探索使用正则表达式的可能性。

你可以从这里阅读:Regular expression to get an attribute from HTML tag

答案 2 :(得分:0)

您可以使用subString方法从htmlString中提取src标记。

htmlString = htmlString.substring(htmlString.indexOf("src=\""));
htmlString = htmlString.substring("src=\"".length());
htmlString = htmlString.substring(0, htmlString.indexOf("\""));

希望这有帮助。

<强>解释

第1步:

  • htmlString.indexOf( “SRC = \”“)

这将找到在实际字符串中遇到“src”标记的索引位置。

  • htmlString.substring(htmlString.indexOf( “SRC = \”“))

然后我们从找到的“src”标签的索引位置对原始字符串进行子串。

第2步:

  • htmlString.substring( “SRC = \””。长度())

这里我们从步骤1中获取的字符串中删除“src”标记。

最后一步

  • htmlString.substring(0,htmlString.indexOf(“\”“))

从第0个索引开始直到下一个双引号出现,我们使用子字符串来提取src标记中的链接