我需要在服务器端调用一个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。
有人有想法执行此操作吗?
答案 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。