Android从html获取文本
我得到一个特殊的html代码:
< p>这是< a href =“http://www.test.hu”>测试链接< / a> 这是& nbsp;带有特殊字符的示例文本:é va< / p>
(之前没有空格; char,但是如果我不插入空格,它的stackoverflow格式)
这不是一个正常的HTML代码,但如果我粘贴在一个空的HTML页面,浏览器显示它与普通标签:
<p>这是<a href="http://www.test.hu">测试链接</a>,这是一个带有特殊字符的示例文本:éva</ p>
该代码将在浏览器中显示:
这是一个测试链接这是一个带有特殊字符的示例文本:éva
所以我想获得这个文本,但是我不能使用Html.fromHtml
,因为我使用的组件不支持Spanned
。 我想尝试StringEscapeUtils
,但我无法导入它。
我如何更换特殊字符并删除标签?
编写一个解析器,与您在其他任何需要解析数据的情况下没有区别。
现在,如果您可以将其作为普通的非转义HTML获取,那么您可以使用各种各样的开源Java HTML解析器。 如果您要像第一个示例那样使用转义的HTML,则必须自己编写解析器。
我想我回答罗伯托克的问题为时已晚,但我相信很多其他人仍然在为这个问题而努力,我就是其中之一。
无论如何,我发现的最简单的方法是:在strings.xml中 ,将您的html代码添加到CDATA中 ,然后在活动中检索字符串并将其加载到WebView中 ,这里是示例:
在strings.xml中:
<string name="st1"><![CDATA[<p>This is <a href="http://www.test.hu">a test link</a> and this is a sample text with special char: éva </p>]]>
</string>
你可能希望用éacute替换é; (注意:有&eacute和之间没有空格)
现在,在您的活动中,创建WebView并将字符串st1加载到它:
WebView mWebview = (WebView)findViewById(R.id.*WebViewControlID*);
mWebview.loadDataWithBaseURL(null, getString(R.string.st1), "text/html", "utf-8", null);
和horraaa,它应该正常工作。 如果你觉得这篇文章有用,如果你可以将它标记为已回答,那么我将会很有帮助,所以我们帮助其他人解决这个问题
链接地址: http://www.djcxy.com/p/2559.html