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

上一篇: Android get text from html

下一篇: Selecting a DOCTYPE for HTML 5 + all browsers