代码之家  ›  专栏  ›  技术社区  ›  Jaswant Singh

从Dart中的字符串中删除HTML标记

  •  7
  • Jaswant Singh  · 技术社区  · 7 年前

    我已经尝试了一段时间了,我有一个字符串,其中包含许多HTML标记,这些标记是某种编码形式的 字符串之间的Like<and>(不带空格)。 有谁能帮我去掉那些标签,这样我就能得到一个普通的字符串吗?

    4 回复  |  直到 7 年前
        1
  •  23
  •   Jaswant Singh    7 年前

    最后,我使用Dart内置的html包实现了这一点

    我就是这样做的

    import ‘package:html/parser.dart’;
    //here goes the function 
    
    String _parseHtmlString(String htmlString) {
    
    var document = parse(htmlString);
    
    String parsedString = parse(document.body.text).documentElement.text;
    
    return parsedString;
    }
    

    我不知道是否有更干净的方法来做这件事,但这一个对我有效。

        2
  •  3
  •   Phat Tran    6 年前

    您只需使用不带第三个Lib的RegExp

    String removeAllHtmlTags(String htmlText) {
        RegExp exp = RegExp(
          r"<[^>]*>",
          multiLine: true,
          caseSensitive: true
        );
    
        return htmlText.replaceAll(exp, '');
      }
    
        3
  •  0
  •   lost veteran    7 年前

    3步

    首先,将它添加到您的“pubspec.yaml”文件中

    依赖项: 颤振html:^0.8.2

    其次,导入到dart文件

    导入“package:flutter_html_view/flutter_html_view.dart”;

    第三,简单使用

    HtmlView(data:“你的Html数据”),

        4
  •  0
  •   John Wang    6 年前

    只是用

    import ‘package:html/parser.dart’;
    

    对于那些包含 <br> <p> 标签。缺少段落信息。五月一日 <br> <p> ,然后获取列表:

    import ‘package:html/parser.dart’  as dom; 
    
    htmlString = '<p> first ... line.<br>second.....line.<p>'; 
    
    List<String> cleanStrings = new List<String>();
    List<dom.Element> ps = parse(htmlString.replaceAll('<br>', '</p><p>'))).querySelectorAll('p');
    if (ps.isNotEmpty) ps.forEach((f) {
      (f.text != '') cleanStrings.add(f.text);
    });
    
        5
  •  -1
  •   reimi    6 年前
    use this class:
    
    import 'package:html/parser.dart';
    
    class HtmlTags {
    
      static void removeTag({ htmlString, callback }){
        var document = parse(htmlString);
        String parsedString = parse(document.body.text).documentElement.text;
        callback(parsedString);
      }
    }
    
    example: 
    
    HtmlTags.removeTag(
     htmlString: '<h1>Hello Bug</h1>',
     callback: (string) => print(string),
    );
    output: Hello Bug