2010-01-06 3 views
4

Я сохранил HTML-код веб-страницы в базе данных.Можно ли загрузить HtmlPage из строки?

Я хочу воспользоваться способностью HtmlUnit находить/ссылаться на элементы DOM.

Можно ли загрузить объект HtmlPage из строки (через столбец базы данных)?

+0

только для интереса: почему вы сохраняете полные html-страницы как строки в базе данных? почему бы просто не хранить как простой файл в файловой системе? –

ответ

8

StringWebResponse может помочь.

Edit: пример:

URL url = new URL("http://www.example.com"); 
    StringWebResponse response = new StringWebResponse("<html><head><title>Test</title></head><body></body></html>", url); 
    HtmlPage page = HTMLParser.parseHtml(response, new TopLevelWindow("top", new WebClient())); 
    System.out.println(page.getTitleText()); 
+0

Вы можете помочь с кодом, пожалуйста? HtmlPage page = new HtmlPage (????); – mrblah

+0

ах нормально, отлично, что получилось идеально! – mrblah

+1

Проблема в том, что конструктор TopLevelWindow защищен – lisak

0

uhhmm хорошо да.

Вам просто нужно его обслуживать (если вы используете java, вы можете использовать Tomcat для этого) и укажите свой тест на обслуживаемую страницу.

3

Я предполагаю, что вы используете HtmlParser.parseHtml создать HtmlPage объект и просто нужно WebResponse пройти к ней?

Если да, StringWebResponse будет обертывать вашу строку, чтобы вы могли передать ее непосредственно на parseHtml.

+0

Я не могу найти HtmlParser в HtmlUnit, вы имеете в виду другую lib? – mrblah

+0

http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/htmlunit/html/HTMLParser.html#parseHtml%28com.gargoylesoftware.htmlunit.WebResponse,%20com.gargoylesoftware.htmlunit.WebWindow%29 –

+1

Проблема в том, что TopLevelWindow конструктор защищен – lisak