它在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中完成?
答案 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。