8

在飞镖中,

我想将字符串“ <!DOCTYPE HTMT><html><head></head><body>....</body></html>”解析为 DOM,以便我可以操作生成的 DOM 中的元素。我知道在 JQuery 中有 $.parseHTML 来处理它。但我在飞镖中找不到类似的东西。谢谢你。

(我试过 html2lib,但是输出的 Document 不能query(".classname")用来选择。)

4

3 回答 3

6

您可以通过解析 HTML 文本来创建元素:

new Element.html("YOUR HTML STRING HERE");

飞镖:启动并运行 CH03

编辑
您可能需要传递一个 NodeValidator 来获取呈现如下的整个文本:

NodeValidator nodeValidator = new NodeValidatorBuilder()
    ..allowTextElements();
    // ..allowHtml5()
    // ..allowElement('Button', attributes: ['ng-disabled']);

new Element.html("YOUR HTML STRING HERE", validator: nodeValidator);

如果您运行该应用程序,如果 NodeValidator 不接受某些文本,您会收到类似“从...中删除元素/属性 xxx”的日志消息。

于 2014-02-27T10:34:28.263 回答
5

试试html。它是 100% 纯 Dart,所以你应该做好准备。

您还可以考虑为 Dart 使用 XML 解析器,例如xml,具体取决于 HTML 的性质。

于 2013-10-19T15:06:19.580 回答
0

在dart 文档中查看这篇文章

你可以用它来飞镖

import 'dart:html';

并像这样进行解析

querySelector('#theid').text = 'Wake up, sleepy head!';
}

如果出现颤动,您必须在 pubspec.yaml 中的 cupertino_icons 依赖项下方添加“html”包例如

html: ^0.13.3+3

然后你必须导入它的飞镖文件

import 'package:html/parser.dart' as parser;

然后像以前一样进行解析,但记得在每个方法之前添加别名!

于 2018-11-20T14:07:34.410 回答