2010-11-30 39 views
1

Lorsque j'exécute page.asXml() avec HtmlUnit, je perds le doctype de ma page. Y at-il un travail autour?Comment puis-je conserver mon doctype avec htmlunit + la méthode page.asXml

Remarque: l'intention est de servir DOM pour Google.

+0

Il serait utile de poster le code que vous utilisez, et d'indiquer exactement ce que vous voulez dire en perdant le doctype de la page. –

+0

Rodney, je me sentais mieux de ne pas compliquer celui-ci avec du code, car j'utilise IKVM pour exécuter HtmlUnit dans .net. Ma page charge correctement 99,99% comme nous l'avons. La seule différence notable est l'exclusion de doctype qui, lorsqu'elle est incluse, rend la page exactement identique. – David

+0

Toujours pas sûr de ce que vous entendez par "perdre le doctype" ... asXml() renvoie simplement une chaîne de HTML de la page. Dites-vous que l'appel asXml() modifie l'objet page? –

Répondre

0

Essayez d'appeler

p.getWebResponse().getContentAsString() 

au lieu de

p.asXml() 

Je viens d'essayer contre http://google.com, et dans le premier cas "<! DOCTYPE html>" est resté dans la sortie.

+0

Merci pour la réponse. J'ai essayé votre code, et j'ai constaté qu'il ne renvoyait pas le javascript exécuté/eval'd, comme asXml l'a fait avec l'attente pour les méthodes de javascripts d'arrière-plan. J'ai vérifié l'API et dit que c'est la réponse web originale, ce qui n'est pas vraiment ce que je veux. Ma solution, fonctionne pour l'instant: - \ – David

+0

+1: Le doctype "perdu" peut être ré-obtenu en analysant 'getContentAsString()'. Il semble que l'OP ne voulait pas faire cela et voulait à la place coder un nouveau doctype de ''. – antak