You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将API返回的HTML格式响应转换为纯文本(Flutter场景)

Flutter去除HTML标签显示纯文本方案

方案一:正则表达式快速处理(适合简单HTML)

先写一个工具函数,用正则匹配并移除所有HTML标签:

String stripHtmlTags(String html) {
  final regex = RegExp(r'<[^>]*>', multiLine: true, caseSensitive: false);
  return html.replaceAll(regex, '');
}

接着修改你的plainText方法,调用这个函数处理quote字段:

Iterable<Widget>? plainText() {
  final quotePlanText = data?.map(
    (v) => Container(
      child: Center(
        child: Text(
          stripHtmlTags(v.qoute), // 替换为处理后的纯文本
          style: TextStyle(
            fontSize: 22,
            fontFamily: 'Poppins',
          ),
        ),
      ),
    ),
  );
  return quotePlanText;
}

方案二:使用html包(复杂HTML场景更可靠)

如果API返回的HTML有嵌套标签、特殊实体(比如&amp;),正则处理会有遗漏,推荐用官方维护的html包:

  1. 在pubspec.yaml中添加依赖:
dependencies:
  html: ^0.15.4 # 建议使用最新版本
  1. 执行flutter pub get安装依赖。

  2. 导入包并编写转换函数:

import 'package:html/parser.dart' show parse;

String stripHtmlTags(String html) {
  final document = parse(html);
  return document.body?.text ?? html;
}
  1. 同样在plainText方法中调用stripHtmlTags函数即可,用法和方案一一致。

小提示

  • 可以先打印stripHtmlTags(v.qoute)的结果,确认转换后的文本是否符合预期。
  • 特殊字符实体(比如&lt;转<)只有html包能自动处理,复杂场景优先选这个方案。

内容的提问来源于stack exchange,提问作者usama haider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:53:24