来自HTTP的HTMLDocument对象read()

时间:2013-11-27 13:42:20

标签: dart

我需要在服务器端调用一个URL并使用响应中的HTML内容。为此,我正在使用Dart的HTTP库:

http.read('myUrl').then((contents) {
    //contents to HTMLDocument format //Need to transform the String contents to HTML object
});

我想将响应转换为HTMLDocument(或其他我不知道的对象),以便能够通过HTML标记或CSS类检索其中的元素,例如使用JQuery。

有人有想法执行此操作吗?

2 个答案:

答案 0 :(得分:1)

您可以使用pub中的 html5lib 包。它允许解析HTML并在服务器端呈现DOM,就像元素树一样。元素树最终将“与dart:html兼容,因此将来相同的代码将在客户端和服务器上运行”。有关入门示例,请参阅自述文件。

答案 1 :(得分:1)

“我需要在服务器端打电话”

不确定你的意思。

如果您在浏览器中运行并调用服务器,则可以尝试使用DocumentFragment。像这样:

http.read(url).then((html) {
    var fragment = new DocumentFragment(html);
    var element = fragment.query('.foo');
    // code here...
});

否则,如果您正在运行服务器端,正如其他答案所提到的那样,html5lib是可行的方法。上次我在html5lib中查看query()方法时,只支持标记名查询而不是类或ID。