如何替换超链接

时间:2015-10-06 21:05:00

标签: java android html

它在Android上,需要在加载到WebView之前修复html。

通常可以通过

完成
(<a[^>]+>)(.+?)(<\/a>) 

获取组$ 1然后替换文本。

如果&lt; a&gt;中有其他未知的孩子怎么办?标签? 以下示例具有&lt; a&gt;&lt; p&gt; ... text&lt; / p&gt;&lt; / a&gt;,但&lt; p&gt;可能还有其他事情未知。

它真正想要的是只替换元素中任何子元素的文本元素的内容。

<a href="http://news.newsletter.com/" target="_blank">
  <p><img alt=“Socialbook" border="0" height="50" 
  src="http://news.newsletter.com/images/socialbook.gif" width="62">
  THIS IS THE TEXT NEEDED TO REPLACE<p>
</a>

这可以在JAVA中完成,还是必须在WebView的javascript中完成?

1 个答案:

答案 0 :(得分:2)

您可以使用任何Java html解析器。例如。 JSoup

String html = "<html><head><title>First parse</title></head>"
    + "<body><a href="..."><p>Parsed HTML into a doc.</p></a></body></html>";
Document doc = Jsoup.parse(html);
Elements links = doc.select("a");
for (Element link : links)
    link.text("~" + link.text() + "~");

请参阅Element api docs。