Android从html获取文本
Posted
技术标签:
【中文标题】Android从html获取文本【英文标题】:Android get text from html 【发布时间】:2011-07-28 13:44:41 【问题描述】:我得到一个特殊的 html 代码:
< ;p > ;This is < ;a href=" ;http://www.test.hu" ;> ;a test link< ;/a> ; and this is & ;nbsp;a sample text with special char: & ;#233;va < ;/p> ;
(在; char之前没有空格,但如果我不插入空格,***会格式化它)
这不是正常的html代码,但是如果我粘贴到一个空的html页面,浏览器会用正常的标签显示它:
<i><_p_>This is <_a_ href="http://www.test.hu">a test link<_/a_> and this is a sample text with special char: éva <_/p_>
</i>
此代码将显示在浏览器中:
这是一个测试链接 这是一个带有特殊字符的示例文本:éva
所以我想得到这个文本,但是我不能使用Html.fromHtml
,因为我使用的组件不支持Spanned
。我想试试StringEscapeUtils
,但我无法导入。
如何替换特殊字符和删除标签?
【问题讨论】:
【参考方案1】:我想我回答 Robertoq 的问题为时已晚,但我相信很多其他人仍在为这个问题苦苦挣扎,我就是其中之一。
无论如何,我找到的最简单的方法是: 在 strings.xml 中,在 CDATA 中添加您的 html 代码,然后在 Activity 中检索字符串并将其加载到 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>
您可能希望将 é 替换为 é ; (注意:é 和 ; 之间没有空格)
现在,在您的活动中,创建 WebView 并将字符串 st1 加载到其中:
WebView mWebview = (WebView)findViewById(R.id.*WebViewControlID*);
mWebview.loadDataWithBaseURL(null, getString(R.string.st1), "text/html", "utf-8", null);
而且 horraaa,它应该可以正常工作。如果您觉得这篇文章有用,如果您可以将其标记为已回答,我将非常感激,以便我们帮助其他人解决这个问题
【讨论】:
【参考方案2】:编写一个解析器,这与您必须解析数据的任何其他情况没有什么不同。
现在,如果您可以将其作为普通的非转义 HTML 来获取,那么您可以使用各种开源 Java HTML 解析器。如果您要像在第一个示例中那样使用转义的 HTML,则必须自己编写解析器。
【讨论】:
以上是关于Android从html获取文本的主要内容,如果未能解决你的问题,请参考以下文章
Android:使用 ListAdapter 从 TextView 获取特定文本
如何从图库中的图像中获取(提取)文本并搜索该文本 - Android?
Appium 自动化测试:如何从 android [android.view.View] 中的自定义 UI 中获取元素或文本