2013-11-27 4 views
1

Мне нужно позвонить на стороне сервера, URL-адрес и работать с содержимым HTML без ответа. Для этого я использую библиотеку HTTP от Dart так:Объект HTMLDocument из HTTP read()

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

И я хочу, чтобы преобразовать ответ на HTMLDocument (или другой объект, я не знаю), чтобы иметь возможность получить элемент в нем HTML-тег или класс CSS, например, с помощью JQuery.

У кого-нибудь есть идея выполнить это?

ответ

1

Вы можете найти: html5lib package from pub. Он позволяет анализировать HTML и представлять его DOM как дерево элементов на стороне сервера. Дерево элементов будет в конечном итоге «быть совместимым с dart: html, поэтому тот же код будет работать на клиенте и на сервере« в будущем. См. Readme для начала работы.

1

«Мне нужно позвонить на стороне сервера»

Не уверен, что именно то, что вы имеете в виду.

Если вы работаете в браузере и звоните на сервер, вы можете попробовать использовать DocumentFragment. Что-то вроде этого:

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

В противном случае, если вы работаете на стороне сервера, а другой ответ упоминает, html5lib это путь. В прошлый раз, когда я посмотрел метод query(), в html5lib поддерживались только запросы тэгов, а не классы, или ids.

Смежные вопросы