解析简单的 Html 文本

Parse simple Html text

提问人:albert 提问时间:2/23/2020 更新时间:2/23/2020 访问量:41

问:

我有一些简单的 html 字符串,只包含 spanstrong 标签,我想在 TextView 中显示它。由于 TextView 不了解 html 类,因此我想根据 html 属性为自己设置正确的样式。

<span class="victoria line-text">Victoria line</span> to <strong>Highbury & Islington</strong>

是否可以借助 Html.fromHtml 方法和 Spanned 对象来获取以下信息,或者我应该创建自己的解析逻辑?

object1
{
   public String text="Victoria line";
   public String tag="Span";
   public String[] classes = {"victoria" "line-text" }
}

object2
{
   public String text=" to ";
   public String tag=null;
   public String[] classes =null;
}
object3
{
   public String text="Highbury & Islington";
   public String tag="Strong";
   public String[] classes =null;
}
Java Android HTML 解析

评论


答:

0赞 Yrii Borodkin 2/23/2020 #1

我认为您不能仅使用 Html.fromHtml 来做到这一点。当然,你可以为标签实现你自己的处理程序(它用于无法识别的标签,但你可以使用正则表达式更改已知的标签名称并自己处理它们),或者编写你自己的标签解析器,但标签类是另一回事。

我建议使用 Jsoup,它是 html 解析库,然后按类选择元素,并将 class 和 tag 替换为一些自定义标签。并使用自定义标记处理程序将结果馈送到 Html.toHtml()。