在dart中将HTML字符串解析为DOM

xhg*_*xhg 5 html parsing dart

在飞镖中

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

(我已经尝试过html2lib,但输出Document无法query(".classname")用来选择.)

Eas*_* PI 6

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

new Element.html("YOUR HTML STRING HERE");
Run Code Online (Sandbox Code Playgroud)

参见Dart:启动并运行CH03

编辑
您可能需要通过NodeValidator来获得整个文本,如下所示:

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

new Element.html("YOUR HTML STRING HERE", validator: nodeValidator);
Run Code Online (Sandbox Code Playgroud)

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


Vid*_*dya 5

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

根据 HTML 的性质,您还可以考虑为 Dart 使用 XML 解析器,例如xml