web-dev-qa-db-fra.com

Supprimer des balises HTML d'une chaîne dans Dart

J'essaie d'y parvenir depuis un certain temps, j'ai une chaîne qui contient beaucoup de balises HTML qui est sous une forme codée comme & lt; et & gt; (sans les espaces) entre la chaîne. Quelqu'un peut-il m'aider à supprimer ces balises pour obtenir une chaîne simple?

17
Jaswant Singh

Enfin, j'ai atteint cet objectif en utilisant le package html intégré de Dart

Voici comment je l'ai fait

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;
}

Je ne sais pas s'il existe un moyen plus propre de le faire, mais celui-ci a fonctionné pour moi.

27
Jaswant Singh

Vous pouvez simplement utiliser RegExp sans 3rd Lib

String removeAllHtmlTags(String htmlText) {
    RegExp exp = RegExp(
      r"<[^>]*>",
      multiLine: true,
      caseSensitive: true
    );

    return htmlText.replaceAll(exp, '');
  }
13
Phat Tran Ky
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
0
reimi

3 étapes

tout d'abord, ajoutez ceci à votre fichier "pubspec.yaml"

dépendances: flutter_html: ^ 0.8.2

deuxièmement, importez dans votre fichier Dart

importer 'package: flutter_html_view/flutter_html_view.Dart';

3ème, utilisez simplement

HtmlView (données: "Vos données Html"),

0
lost veteran

En utilisant simplement

import ‘package:html/parser.Dart’;

obtiendra un problème, pour les chaînes qui incluent <br> et <p> Mots clés. Les informations de paragraphe sont manquantes. Peut d'abord remplacer <br> à <p>, puis obtenez Liste:

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);
});
0
John Wang