【发布时间】:2022-01-14 03:24:13
【问题描述】:
在我的应用程序中,有一个搜索功能可以按用户输入的搜索文本过滤消息列表。但我的消息项的正文字段包含完整格式的 HTML 文档 (<html>...</html>)。我想通过将搜索过滤应用于邮件正文字段来过滤邮件列表。
_getFilteredMessageList() {
if (!StringHelper.isNullOrWhiteSpace(this._searchText)) {
return _messagesList.where((msg) => msg.title.toLowerCase().contains(this._searchText.toLowerCase()) || msg.body.toLowerCase().contains(this._searchText.toLowerCase())).toList();
}
return _messagesList;
}
这里的msg.body 是 HTML 内容字段。
我只想按用户可见的文本内容进行搜索,忽略所有不可见的标签和 cmets。
在 Flutter 中是否有任何包或逻辑可以实现此功能?
Flutter v2.2.2
【问题讨论】:
-
请分享您的代码以获得更好的答案。
-
@Diwyansh 通过添加过滤代码更新。
-
我建议您解析 html 内容,这样可以很容易地过滤掉列表。您可以使用
html包进行解析。使用简单。 -
@SandunPerera 试试这个包来解析 html 到 String pub.dev/packages/flutter_html
-
您能否提供一个示例代码,因为我需要 HTML 到纯文本解析器,方法是忽略所有非可视 html 内容并仅提取文本。
标签: html flutter dart search mobile